如何使用两块硬盘作为 Ubuntu24 的系统盘,实现坏掉一块不影响系统运行。

最近我想使用Ubuntu组一个NAS系统,想实现系统盘冗余,各位大佬可以给点建议吗。

Deep Seek

为了实现两块硬盘作为 Ubuntu 24 系统盘的冗余配置(RAID 1),确保一块硬盘损坏时系统仍可运行,以下是详细步骤:


一、准备工作

  1. 备份数据
    所有硬盘数据将被清除,操作前请备份重要数据。

  2. 硬件要求

    • 两块相同或容量相近的硬盘(如 /dev/sda 和 /dev/sdb)。

    • Ubuntu 24 安装介质(U盘或光盘)。


二、安装 Ubuntu 24 并配置 RAID 1

  1. 启动安装介质
    插入 Ubuntu 安装 U 盘,重启电脑并从 U 盘启动。

  2. 进入手动分区模式

    • 在安装类型界面选择 "Custom storage layout"(自定义存储布局)。

  3. 为每块硬盘创建 RAID 分区

    • 分别对两块硬盘执行以下操作(以 /dev/sda 和 /dev/sdb 为例):

      1. 选择第一块硬盘(如 /dev/sda),点击 "Add GPT Partition"

      2. 创建分区:

        • EFI 系统分区(必需):

          • 大小:1GB

          • 类型:EFI System Partition

          • 挂载点:/boot/efi(后续需为每块硬盘单独创建)

        • RAID 分区(剩余空间):

          • 类型:Physical volume for RAID

      3. 重复以上步骤为第二块硬盘(如 /dev/sdb)创建相同分区。

  4. 配置软件 RAID 1

    • 点击 "Create software RAID",选择 RAID 类型为 RAID 1

    • 添加两块硬盘的 RAID 分区(如 /dev/sda2 和 /dev/sdb2)。

    • 为该 RAID 设备分配挂载点:

      • 根目录 /
        文件系统 ext4,挂载到 /

      • 交换分区(可选)
        可创建一个交换分区或使用 swap 文件。

  5. 配置 EFI 分区(关键步骤)

    • 由于 UEFI 不支持从 RAID 启动,需为每块硬盘单独创建 EFI 分区:

      1. 分别为 /dev/sda1 和 /dev/sdb1 设置挂载点为 /boot/efi

      2. 确保安装引导程序到 两块硬盘(后续步骤)。

  6. 安装引导加载程序

    • 在安装界面底部选择 "Advanced",将引导加载程序安装到 两块硬盘(如 /dev/sda 和 /dev/sdb)。

  7. 完成安装
    确认配置无误后,开始安装系统。


三、安装后验证与配置

  1. 检查 RAID 状态
    系统安装完成后,打开终端执行:

    cat /proc/mdstat

    输出应显示 RAID1 状态为 active,两块硬盘均为 U(正常)。

  2. 配置 RAID 监控与报警

    • 安装 mdadm 监控工具:

      sudo apt update && sudo apt install mdadm

    • 配置邮件通知(可选):

      sudo nano /etc/mdadm/mdadm.conf

      添加以下内容(替换为你的邮箱):

      MAILADDR your-email@example.com

  3. 测试冗余性(模拟故障)

    • 标记一块硬盘为故障(例如 /dev/sda):

      sudo mdadm --manage /dev/md0 --fail /dev/sda2

    • 移除故障硬盘:

      sudo mdadm --manage /dev/md0 --remove /dev/sda2

    • 重启系统,验证是否仍能正常启动。


四、更换故障硬盘

  1. 插入新硬盘
    物理替换损坏的硬盘(如 /dev/sda)。

  2. 将新硬盘加入 RAID
     

    sudo mdadm --manage /dev/md0 --add /dev/sda2

    RAID 将自动开始同步数据。

  3. 重新安装引导加载程序

    sudo grub-install /dev/sda
    sudo update-grub


五、注意事项

  1. 性能影响
    软 RAID 1 的写入速度略有下降,读取速度可能提升。

  2. 定期检查
    建议每月检查 RAID 状态:

    sudo mdadm --detail /dev/md0

  3. 备份 EFI 分区
    可手动备份 EFI 分区内容,防止引导损坏。


通过以上步骤,你的 Ubuntu 24 系统将在两块硬盘上实现冗余,单块硬盘故障时仍可正常运行。




 

ChatGPT
 

下面是在 Ubuntu 24.04 LTS 上使用 两块硬盘组成 RAID1 作为系统盘 的完整安装步骤,确保即使一块硬盘坏掉,系统仍可正常启动运行。


🧭 总体目标

使用 Ubuntu Server 24.04 安装器 配置两块硬盘为软件 RAID1,系统数据和引导记录都镜像保存,实现一块硬盘损坏系统照常运行。


📦 准备工作

项目内容
安装镜像Ubuntu Server 24.04 ISO(推荐使用 Server 版,支持手动分区和 RAID 配置)
U盘至少 4GB,用于制作启动盘(可使用 Rufus 或 balenaEtcher)
硬盘至少两块空白硬盘(大小一致或相近),如 /dev/sda/dev/sdb
启动方式建议使用 UEFI(BIOS 也可)


🧰 安装步骤(基于 Ubuntu Server 24.04 安装器)

🔥 第 1 步:进入安装器

  1. 用制作好的 U盘启动电脑,选择 Install Ubuntu Server

  2. 选择语言、键盘布局、网络等设置,进入 "Storage configuration" 阶段。


💽 第 2 步:配置 RAID1

✅ 选择「Custom storage layout」

进入「Storage configuration」界面:

  1. 选择「Custom storage layout

  2. 找到两块硬盘(如 /dev/sda/dev/sdb),不要使用自动分区。


🧱 第 3 步:为 RAID 创建分区

对两块硬盘 手动创建分区,用于 /boot/efi(UEFI 启动),/boot,和系统根目录 /

以每块硬盘为例:

💿 在 /dev/sda/dev/sdb 上分别创建:
分区大小用途类型
sda1/sdb1512MBEFI 系统分区(如果 UEFI 启动)EFI System Partition
sda2/sdb21GB/boot用于 RAID1
sda3/sdb3剩余所有空间/(系统根目录)用于 RAID1

创建分区时,在 "Use as" 项中选择 "RAID" 类型(不是格式化 ext4!


🔗 第 4 步:创建 RAID1 设备

  1. 在底部点击 "Create software RAID (md)"

  2. 创建两个 RAID1:

RAID1 - md0 用于 /boot
  • RAID Level: RAID1

  • Devices: /dev/sda2, /dev/sdb2

  • Number of devices: 2

  • Spare devices: 0

RAID1 - md1 用于 /(根目录)
  • RAID Level: RAID1

  • Devices: /dev/sda3, /dev/sdb3

  • Number of devices: 2

  • Spare devices: 0


📁 第 5 步:挂载 RAID 和设置格式

在分区列表中:

  1. 找到你刚刚创建的 /dev/md0/dev/md1

  2. 分别进行如下设置:

设备挂载点格式用途
/dev/md0/bootext4存放启动文件
/dev/md1/ext4根目录,主系统所在
/dev/sda1/dev/sdb1/boot/efiEFI System Partition若使用 UEFI

确保两个硬盘都创建了 EFI 分区,并都设置挂载到 /boot/efi(安装器允许这样做)。


🚀 第 6 步:完成安装

  1. 确认配置无误,点击继续安装。

  2. 选择安装 GRUB 到两块硬盘上(系统会自动检测到两个磁盘)。

  3. 安装 Ubuntu 系统。

  4. 安装完成后重启,不要忘记拔掉 U盘


🧪 第 7 步:验证 RAID 正常工作

进入系统后执行:

cat /proc/mdstat 

你应该看到:

md1 : active raid1 sda3[0] sdb3[1]blocks ... [2/2] [UU]md0 : active raid1 sda2[0] sdb2[1]blocks ... [2/2] [UU]

[UU] 表示两块硬盘都在正常同步工作。


🔧 第 8 步:测试单盘启动(可选)

你可以断开其中一块硬盘(如 sdb),再开机测试是否还能进入系统。若一切设置无误,系统应仍能正常启动运行。


📬 RAID 状态监控(可选)

安装 mdadm 工具以便后续维护:

sudo apt update
sudo apt install mdadm
sudo mdadm --detail /dev/md0
sudo mdadm --detail /dev/md1

✅ RAID 优势总结

优点描述
容错能力强一块硬盘损坏系统照常运行
数据一致性所有写入自动镜像
维护方便可添加/更换损坏硬盘重建 RAID


❗ 注意事项

  • 不建议把 /boot 放在非 RAID 分区,否则断盘可能导致无法启动。

  • 如果用 BIOS 模式安装,可略过 EFI 分区,使用 /boot 即可。

  • 若使用桌面版 Ubuntu,需预先使用 LiveCD 手动配置 RAID(较为复杂)。
     

🎯 目标

生成一套 Ubuntu Server 24.04 自动化安装配置(Subiquity 自动安装文件),使用 RAID1 镜像两块硬盘作为系统盘,实现一块硬盘损坏时仍能正常启动。


📄 自动安装文件:raid1-autoinstall.yaml

这个文件可以放在 U 盘或 ISO 中进行 自动安装,支持 RAID1、UEFI、LVM(可选),适用于 /dev/sda/dev/sdb

#cloud-config
autoinstall:version: 1identity:hostname: ubuntu-serverusername: ubuntupassword: "$6$Xs9ZY3C...hashedpassword..."  # 这里填你的加密密码locale: en_USkeyboard:layout: usstorage:layout:name: customswap:size: 0config:- id: disk-sdatype: diskmatch:serial: <sda-serial>wipe: superblock-recursive- id: disk-sdbtype: diskmatch:serial: <sdb-serial>wipe: superblock-recursive# EFI partitions- id: sda-efitype: partitiondevice: disk-sdasize: 512Mflag: boot- id: sdb-efitype: partitiondevice: disk-sdbsize: 512Mflag: boot# /boot RAID partitions- id: sda-boottype: partitiondevice: disk-sdasize: 1024M- id: sdb-boottype: partitiondevice: disk-sdbsize: 1024M# root RAID partitions- id: sda-roottype: partitiondevice: disk-sdasize: -1- id: sdb-roottype: partitiondevice: disk-sdbsize: -1# RAID for /boot- id: raid-boottype: raidname: md0level: 1devices: [sda-boot, sdb-boot]spare-devices: []- id: raid-roottype: raidname: md1level: 1devices: [sda-root, sdb-root]spare-devices: []# File systems- id: fs-efi-sdatype: formatvolume: sda-efifstype: fat32- id: fs-efi-sdbtype: formatvolume: sdb-efifstype: fat32- id: fs-boottype: formatvolume: raid-bootfstype: ext4- id: fs-roottype: formatvolume: raid-rootfstype: ext4# Mounts- id: mount-efi-sdatype: mountpath: /boot/efidevice: fs-efi-sda- id: mount-efi-sdbtype: mountpath: /boot/efidevice: fs-efi-sdb- id: mount-boottype: mountpath: /bootdevice: fs-boot- id: mount-roottype: mountpath: /device: fs-rootgrub:install_devices:- /dev/sda- /dev/sdb

❗ 替换说明

  1. 获取硬盘序列号

在 LiveCD 中运行以下命令查看序列号:

lsblk -o NAME,SERIAL 

<sda-serial><sdb-serial> 替换为你硬盘的真实序列号。

  1. 生成密码哈希

如果不希望密码明文,使用以下命令生成:

mkpasswd -m sha-512 

输入你的密码,会返回一个类似 $6$XXXXXX$... 的字符串,复制替换上面的 password 字段。


🔧 使用方法(制作自动安装U盘)

  1. 下载 Ubuntu Server 24.04 ISO

  2. 制作启动 U 盘(用 RufusbalenaEtcher

  3. 在 U盘根目录或 ISO 镜像中创建如下结构:

/autoinstall/└── raid1-autoinstall.yaml
  1. 在启动时按下 EscTab,在引导参数中添加:

autoinstall ds=nocloud\;s=/cdrom/autoinstall/ 

(或指向你 U盘或 ISO 中的路径)


🧪 模拟测试(推荐用虚拟机验证)

你可以用 VirtualBox 或 QEMU 启动该配置,添加两块虚拟磁盘进行测试部署。


✅ 总结

你现在有了一个能:

  • 自动配置两块硬盘为 RAID1

  • 自动分区和挂载

  • 安装 GRUB 到两个磁盘

  • 安装 Ubuntu 并启用自动登录账户

的完整无人值守系统。


如你需要:

  • 自动安装后运行脚本(比如安装 Docker、配置 SSH)

  • 配置 LVM + RAID + Swap

  • 桌面版系统 + RAID 安装

都可以告诉我,我可以继续为你定制自动安装方案。是否需要我帮你打包好 ISO 镜像或生成 LiveCD 模拟环境?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/82319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2025最新】虚拟机安装macos,VMware在Windows11上安装macOS 15完整图文教程 - 新手也能轻松上手

引言 想体验苹果系统但不想买Mac电脑&#xff1f;别担心&#xff01;本教程将手把手教你如何在Windows11环境下&#xff0c;通过VMware虚拟机安装macOS Sequoia15系统。即使你是零基础小白&#xff0c;按照这个步骤操作&#xff0c;也能轻松搞定&#xff01; 准备工作 在开始…

论文阅读笔记——Emerging Properties in Unified Multimodal Pretraining

BAGEL 论文 商业闭源系统与学术/开源模型的差距很大&#xff0c;BAGEL 旨在通过开源统一架构大规模交错数据主要解决&#xff1a; 架构割裂&#xff1a;理解/生成分属两条网络&#xff0c;信息被压缩在少量条件 token 中&#xff0c;长上下文推理受限。数据贫乏&#xff1a;主…

Go 语言基础1 Slice,map,string

更多个人笔记见&#xff1a; github个人笔记仓库 gitee 个人笔记仓库 个人学习&#xff0c;学习过程中还会不断补充&#xff5e; &#xff08;后续会更新在github上&#xff09; 文章目录 stirng 字符串区分 rune&#xff0c;byte&#xff0c;string字符串操作strings 库相关 f…

C# AI(Trae工具+claude3.5-sonnet) 写前后端

这是一个AI 写的前后端分离项目,通过AI编程&#xff0c;开发电商管理系统&#xff08;登陆、注册&#xff09; 使用的AI工具为 Trae工具(字节国际版)claude3.5-sonnet(目前代码最强模型) 前端为 vue3Bootstrap 后端为 C# net5.0(因为我电脑里面已经安装了这个新版更好) do…

10G/25G PCS only mode for CoaXPress Over Fiber

背景 在CoaXPress Over Fiber的需求中, 需要利用XGMII的PCS 实现25G 数据速率的稳定传输&#xff0c;也就是不需要其MAC层&#xff0c;只保留PMA PCS层&#xff0c;借用其物理端口 线缆&#xff0c;实现其它协议的数据传输。 25G PCS 25GMII 的 TX/RX 时钟频率在 DDR&#xff…

掌握聚合函数:COUNT,MAX,MIN,SUM,AVG,GROUP BY和HAVING子句的用法,Where和HAVING的区别

对于Java后端开发来说&#xff0c;必须要掌握常用的聚合函数&#xff1a;COUNT&#xff0c;MAX&#xff0c;MIN&#xff0c;SUM&#xff0c;AVG&#xff0c;掌握GROUP BY和HAVING子句的用法&#xff0c;掌握Where和HAVING的区别&#xff1a; ✅ 一、常用聚合函数&#xff08;聚…

无人机飞行间隔安全智能评估、安全风险评估

无人机空中安全飞行评估需结合改进碰撞模型、蒙特卡洛仿真、安全间隔反推及动态避障策略&#xff0c;通过多机型分类与实时数据融合&#xff0c;实现从理论建模到实际部署的全流程管控&#xff0c;为城市低空密集飞行提供安全保障。 需求 无人机飞行间隔安全智能评估 无人机…

pdf图片导出(Visio和Origin)

一、Visio 导入pdf格式图片 1. 设计->大小&#xff0c;适应绘图。 2. 文件->导出&#xff0c;导出为pdf格式。 上面两部即可得到只包含图的部分的pdf格式。 如果出现的有默认白边&#xff0c;可以通过以下方式设置&#xff1a; 1. 文件->选项->自定义功能区->…

实现一个带有授权码和使用时间限制的Spring Boot项目

生成和验证授权码记录授权时间和过期时间实现授权逻辑 以下是具体的实现方法&#xff1a; 1. 生成和验证授权码 可以使用加密技术生成和验证授权码。授权码中可以包含有效期等信息&#xff0c;并使用密钥进行签名。 示例代码&#xff1a; java复制代码 import javax.crypt…

官方SDK停更后的选择:开源维护的Bugly Unity SDK

腾讯Bugly&#xff0c;为移动开发者提供专业的异常上报和运营统计&#xff0c;帮助开发者快速发现并解决异常&#xff0c;同时掌握产品运营动态&#xff0c;及时跟进用户反馈。 但是&#xff0c;免费版的Unity SDK已经很久不更新了&#xff0c;会有一些问题和特性缺失&#xff…

Spring Boot分页查询进阶:整合Spring Data REST实现高效数据导航

目录&#xff1a; 引言分页查询基础回顾 2.1 Spring Data JPA分页接口 2.2 Pageable与Page的使用 2.3 常见分页参数设计Spring Data REST简介 3.1 HATEOAS与超媒体驱动API 3.2 Spring Data REST核心功能 3.3 自动暴露Repository接口整合Spring Boot与Spring Data REST 4.1 项目…

[Datagear] [SQL]实现分组统计同时带汇总行的两种方式对比分析

在进行数据可视化开发时,我们经常会遇到用户提出的需求:除了展示按某字段分组统计的数据外,还希望看到一个“整体总计”的数据行。这种汇总行在报表、图表展示中极为常见,可以帮助用户快速理解全局数据水平。 实现这一功能的方法主要有两种:一种是使用 SQL 的 GROUP BY ..…

Docker常用命令介绍

Docker常用命令 1、本地镜像管理 save 命令 将一个或多个 Docker 镜像保存到一个 tar 归档文件中&#xff0c;以便在其他环境中分发或备份。 # 语法&#xff1a;docker save [OPTIONS] IMAGE [IMAGE...]# 保存单个镜像到文件 docker save -o myimage.tar myimage:latest# 保…

09 接口自动化-用例管理框架pytest之allure报告定制以及数据驱动

文章目录 一、企业级的Allure报告的定制左边的定制&#xff1a;右边的定制&#xff1a;1.用例的严重程度/优先级2.用例描述3.测试用例连接的定制4.测试用例步骤的定制5.附件的定制 二、企业中真实的定制有哪些&#xff1f;三、allure报告如何在本地访问四、allure中的数据驱动装…

DDoS防护实战——从基础配置到高防IP部署

一、基础防护&#xff1a;服务器与网络层加固 Linux内核优化&#xff1a; 调整TCP协议栈参数&#xff0c;缓解SYN Flood攻击&#xff1a; # 启用SYN Cookie并减少超时时间 echo 1 > /proc/sys/net/ipv4/tcp_syncookies echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout…

华为云Flexus+DeepSeek征文|Flexus云服务器Dify-LLM资源部署极致体验Agent

前引&#xff1a;重磅来袭&#xff01;本次以DeepSeek-V3/R1商用大模型和Dify-LLM应用平台一键部署为核心&#xff0c;专为新手打造“开箱即用”的AI开发体验。无论你是想快速搭建企业级AI应用&#xff0c;还是探索大模型落地的无限可能&#xff0c;只需跟随小编实现三步走&…

SQLAlchemy 2.0 查询使用指南

SQLAlchemy 2.0 查询使用指南 1. 环境设置 首先&#xff0c;需要安装 SQLAlchemy 2.0 版本。假设你使用的是 SQLite 数据库&#xff0c;可以通过以下命令安装 SQLAlchemy&#xff1a; pip install sqlalchemy接着&#xff0c;我们创建数据库连接并初始化会话&#xff1a; f…

Windows 使用 WSL 安装 Ubuntu

一&#xff0c;前言 Windows 上轻松跑 Linux 又不想用笨重的VMware 和VirtualBox &#xff0c;怎么办&#xff1f; 开源项目 Windows Subsystem for Linux (WSL)。它解决了许多开发者在 Windows 和 Linux 间切换的痛点&#xff0c;实现在 Windows 上无缝跑 Linux 工具和命令。…

[Excel VBA]如何製作買三送一優惠條件的POS結帳介面?

Excel I VBA I 買三送一優惠條件的POS結帳機 因應商品特賣活動&#xff0c;結帳介面需整合特定優惠條件&#xff0c;如買三送一&#xff0c;買五送二等等優惠條件。本文封面影片以買三送一為範例&#xff0c;並搭配VBA和對應按鈕&#xff0c;而實現銷售訂單紀錄和即時更新庫存等…

3d世界坐标系转屏幕坐标系

世界坐标 ——> NDC标准设备坐标 ——> 屏幕坐标 标准设备NDC坐标系 屏幕坐标系 .project方法将 将向量(坐标)从世界空间投影到相机的标准化设备坐标 (NDC) 空间。 手动实现HTML元素定位到模型位置&#xff0c;实现模型标签效果&#xff08;和css2Render原理同理&#…