Ubuntu Server安装到Btrfs RAID 1阵列的方法咨询
Ubuntu Server安装到Btrfs RAID 1阵列的方法咨询
你提到的这个问题确实是Ubuntu Server安装器的一个小局限——桌面版允许设置挂载点而不格式化,但服务器版默认做不到。不过别担心,有两种可靠的方法可以把Ubuntu Server安装到Btrfs RAID1阵列上,我给你详细说说:
方法一:安装过程中手动配置分区
这种方法不需要额外介质,直接在官方安装流程里操作:
- 进入Ubuntu Server安装界面,走到分区步骤时,选择**Manual(手动分区)**选项
- 先处理启动分区(如果是UEFI启动):在两块目标磁盘上各创建一个512MB的分区,格式化为
fat32,挂载点设为/boot/efi,并勾选boot标志;如果是BIOS启动,就各创建一个1MB的无格式分区,设置为bios_grub标志 - 接着在两块磁盘的剩余空间里,分别创建主分区,不要格式化,类型选择「physical volume for RAID」
- 选择「Configure RAID」选项,将刚才创建的两个物理卷添加进去,设置RAID级别为
1,完成RAID阵列的创建 - 选中刚创建的RAID设备,创建Btrfs文件系统,然后将挂载点设置为
/,继续完成后续的安装流程
方法二:用Live CD手动部署系统
如果你更偏好完全手动控制,这种方法灵活性更高:
- 启动Ubuntu Server Live CD,进入命令行模式
- 先确认目标磁盘的设备名,比如
/dev/sda和/dev/sdb,可以用lsblk命令查看 - 给两块磁盘分区:
- 为
/dev/sda创建分区:sda1(EFI分区,512MB)、sda2(主分区,剩余全部空间) - 为
/dev/sdb创建分区:sdb1(EFI分区,512MB)、sdb2(主分区,剩余全部空间)
- 为
- 格式化EFI分区:
mkfs.fat -F32 /dev/sda1 mkfs.fat -F32 /dev/sdb1 - 创建Btrfs RAID1阵列(确保数据和元数据都用RAID1):
mkfs.btrfs -d raid1 -m raid1 /dev/sda2 /dev/sdb2 - 挂载RAID阵列到临时目录:
mount /dev/sda2 /mnt - 创建必要的系统目录:
mkdir -p /mnt/boot/efi - 挂载其中一个EFI分区:
mount /dev/sda1 /mnt/boot/efi - 用
debootstrap安装基础系统(以22.04版本为例,替换jammy为你需要的版本代号):debootstrap jammy /mnt http://archive.ubuntu.com/ubuntu/ - 接下来需要配置
fstab、安装GRUB到两块磁盘、设置主机名和用户等,完成后重启即可进入新系统
注意事项
- 安装完成后,务必确保GRUB被安装到两块磁盘上,这样即使其中一块磁盘故障,系统依然可以从另一块启动
- Btrfs的RAID1和传统硬件RAID不同,它是文件系统级别的冗余,后续可以通过
btrfs filesystem df查看阵列状态
备注:内容来源于stack exchange,提问作者Dr. Strom




