正常的 EFI 分区无法放到 raid 上,与是打算使用手动把 sda 上的 boot 分区克隆到 sdb 上(安装系统时在 2 个盘上都建了一个 1G 的 EFI 分区)。
efibootmgr -v
/usr/sbin/update-grub /usr/sbin/grub-install --recheck
boothdd=`df -h | grep efi | awk '{print $1}' | sed 's/://g' | sed 's/\/dev\///g'
/usr/sbin/grub-install --recheck --bootloader-id debian-${boothdd%?}
dd if=`df -h | grep efi | awk '{print $1}'` of=/dev/sdb1 bs=1M
efibootmgr --create --disk /dev/sdb --part 1 -w --label debian-sdb --loader "\EFI\debian\grubx64.efi"
测试 2 个盘启动都没问题,打算写个自动克隆脚本,在更新内核时触执行克隆,有人这样搞过吗?有没有啥坑。 查看 2 个盘的 /boot/efi 分区 UUID 是一样的,这样启动时似乎是随机读一个其中一个盘。
1
ltkun 2023-10-28 07:50:21 +08:00 via Android
pve 安装的时候选了 zfs 12 盘 raidz3 结果每个盘都给我分了 efi 和 boot
|
6
kokutou 2023-10-28 08:54:28 +08:00 via Android
放软 raid 上又不能从软 raid 启动,实际还是从单独硬盘启动,那么这样做的意义呢。。。
|
7
louisxxx OP @sNullp uefi 装系统不需要单独的 boot 分区,他叫 efi 分区。看文件 efi 和 boot 这两个都在 sda1 里面
|
8
yaoyao1128 2023-10-28 11:43:24 +08:00
ESP 需要单独分区
但是 kernel 放在 boot 不需要 你 ESP 分区挂载的是 /boot/efi 而不是 /boot |
9
dode 2023-10-28 12:43:19 +08:00
raid 是保护数据的,不要搞成不停机的奇怪问题
|
10
ranaanna 2023-10-28 13:50:16 +08:00
不明白为什么一个区区 efi 系统分区要 raid ,还要占用 1GB 的容量。是打算装 n 多的操作系统吗,可是一次也只能运行其中一个的呀
|
11
louisxxx OP @yaoyao1128 你说得对,ESP 分区挂载的是 /boot/efi 而不是 /boot 。这样只克隆一次 ESP 分区就行了?/boot 是放在 raid 上的。
root@debian:/opt/raid# ls /boot/efi/EFI/debian/ -1 BOOTX64.CSV fbx64.efi grub.cfg grubx64.efi mmx64.efi shimx64.efi root@debian:/opt/raid# ls /boot/efi/EFI/debian/ -1 BOOTX64.CSV fbx64.efi grub.cfg grubx64.efi mmx64.efi shimx64.efi root@debian:/opt/raid# ls /boot -1 config-5.10.0-20-amd64 config-5.10.0-26-amd64 efi grub initrd.img-5.10.0-20-amd64 initrd.img-5.10.0-26-amd64 System.map-5.10.0-20-amd64 System.map-5.10.0-26-amd64 vmlinuz-5.10.0-20-amd64 vmlinuz-5.10.0-26-amd64 root@debian:/opt/raid# cat /etc/fstab # <file system> <mount point> <type> <options> <dump> <pass> /dev/mapper/vg0-lv0 / xfs defaults 0 0 # /boot/efi was on /dev/sdm1 during installation UUID=78ED-F73E /boot/efi vfat umask=0077 0 1 root@debian:/opt/raid# df -h Filesystem Size Used Avail Use% Mounted on udev 126G 0 126G 0% /dev tmpfs 26G 1.5M 26G 1% /run /dev/mapper/vg0-lv0 930G 8.1G 922G 1% / tmpfs 126G 0 126G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sdn1 952M 2.0M 950M 1% /boot/efi tmpfs 26G 0 26G 0% /run/user/0 /dev/sdm1: UUID="78ED-F73E" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI" PARTUUID="9c5bc403-0917-4542-b48e-5f080fbb3f83" /dev/sdn1: UUID="78ED-F73E" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI" PARTUUID="1129e3c3-4e68-4277-9dc5-d30967783e12" |
13
cndns 2023-11-01 00:05:34 +08:00 via Android
efi 是放引导文件的 内核是放在/boot 目录,注意是目录,你也可以不必单独把/boot 分一个区出来,但是如果你是 uefi 引导就必须要一个单独的/boot/efi 分区 再加上一个 / 根分区 这 2 个是必须的。如果是传统的 grub 引导,只需要一个/ 根分区就 ok gurb 引导程序只会安装你 bios 指定的第一块硬盘设备里面的前多少个字节来的忘记了。
|