我想在USB上启动并启动RAID


1

我有一个涉及四个磁盘(mdadm)的Linux软件RAID5。

这是我的lsblk:

NAME        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda           8:0    0  5.5T  0 disk
├─sda1        8:1    0  953M  0 part
└─sda2        8:2    0  5.5T  0 part
  └─md0       9:0    0 16.4T  0 raid5
    ├─md0p1 259:0    0    4G  0 md    [SWAP]
    ├─md0p2 259:1    0   30G  0 md    /
    └─md0p3 259:2    0 16.3T  0 md    /media/data
sdb           8:16   0  5.5T  0 disk
├─sdb1        8:17   0  953M  0 part
└─sdb2        8:18   0  5.5T  0 part
  └─md0       9:0    0 16.4T  0 raid5
    ├─md0p1 259:0    0    4G  0 md    [SWAP]
    ├─md0p2 259:1    0   30G  0 md    /
    └─md0p3 259:2    0 16.3T  0 md    /media/data
sdc           8:32   0  5.5T  0 disk
├─sdc1        8:33   0  953M  0 part
└─sdc2        8:34   0  5.5T  0 part
  └─md0       9:0    0 16.4T  0 raid5
    ├─md0p1 259:0    0    4G  0 md    [SWAP]
    ├─md0p2 259:1    0   30G  0 md    /
    └─md0p3 259:2    0 16.3T  0 md    /media/data
sdd           8:48   0  5.5T  0 disk
├─sdd1        8:49   0  953M  0 part  /boot
└─sdd2        8:50   0  5.5T  0 part
  └─md0       9:0    0 16.4T  0 raid5
    ├─md0p1 259:0    0    4G  0 md    [SWAP]
    ├─md0p2 259:1    0   30G  0 md    /
    └─md0p3 259:2    0 16.3T  0 md    /media/data
sde           8:64   1  7.2G  0 disk
└─sde1        8:65   1  953M  0 part

因此,当我遇到问题将/ boot置于RAID内部时(没有意识到这是不可能的),我在每个物理磁盘的前面创建了一个相同的1GB分区,用于镜像每个物理磁盘上的/ boot,以便我可以手动指向如果具有主/引导的驱动器失败,则grub2到辅助节点。

但是,我真正想要做的只是将/ boot放在闪存驱动器或SD卡上,并配置grub2来代替它。然后我甚至不需要每个驱动器上的那些1GB分区,也不需要运行grub-install来将grub指向另一个等等。我可以创建一个闪存驱动器的备份映像以刻录到新的闪存驱动器如果当前的一个人死了。这将是快速和有效的,并且完全独立于物理磁盘。

显然我更喜欢在软件RAID中使用/ boot。但是,由于这是不可能的,我宁愿把它放在闪存驱动器上。这就是我尝试完成的目的:

[作为根]

dd if=/dev/sda1 of=/dev/sde1
mount /dev/sde1 /media/usbboot
grub-install --boot-directory=/media/usbboot /dev/sde1
umount /media/usbboot
reboot

[并使用功能键启动USB驱动器]

我错过了什么吗?

Answers:


0

我开始做的事情(自2013年左右开始)就是为我创建一个RAID 1 /boot 分区,跨越我的所有驱动器。每个驱动器上1GB并不是那么多。 Grub很容易从RAID 1启动,即使它有4个设备。

我以前有我的 /boot 在USB上,但我没有采取足够的备份,并不得不重建 无论如何 。从长远来看,它更好,更容易推荐。相信我。

这是我的布局:

# lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINT
sda       8:0    0   1.8T  0 disk
├─sda1    8:1    0   953M  0 part
│ └─md0   9:0    0 952.4M  0 raid1  /boot
├─sda2    8:2    0  18.6G  0 part
│ └─md1   9:1    0  37.2G  0 raid10 /
├─sda3    8:3    0   3.7G  0 part
│ └─md2   9:2    0   7.5G  0 raid10 [SWAP]
├─sda4    8:4    0     1K  0 part
└─sda5    8:5    0   1.8T  0 part
  └─md3   9:3    0   3.6T  0 raid10 /mnt/data
sdb       8:16   0   1.8T  0 disk
├─sdb1    8:17   0   953M  0 part
│ └─md0   9:0    0 952.4M  0 raid1  /boot
├─sdb2    8:18   0  18.6G  0 part
│ └─md1   9:1    0  37.2G  0 raid10 /
├─sdb3    8:19   0   3.7G  0 part
│ └─md2   9:2    0   7.5G  0 raid10 [SWAP]
├─sdb4    8:20   0     1K  0 part
└─sdb5    8:21   0   1.8T  0 part
  └─md3   9:3    0   3.6T  0 raid10 /mnt/data
sdc       8:32   0   1.8T  0 disk
├─sdc1    8:33   0   953M  0 part
│ └─md0   9:0    0 952.4M  0 raid1  /boot
├─sdc2    8:34   0  18.6G  0 part
│ └─md1   9:1    0  37.2G  0 raid10 /
├─sdc3    8:35   0   3.7G  0 part
│ └─md2   9:2    0   7.5G  0 raid10 [SWAP]
├─sdc4    8:36   0     1K  0 part
└─sdc5    8:37   0   1.8T  0 part
  └─md3   9:3    0   3.6T  0 raid10 /mnt/data
sdd       8:48   0   1.8T  0 disk
├─sdd1    8:49   0   953M  0 part
│ └─md0   9:0    0 952.4M  0 raid1  /boot
├─sdd2    8:50   0  18.6G  0 part
│ └─md1   9:1    0  37.2G  0 raid10 /
├─sdd3    8:51   0   3.7G  0 part
│ └─md2   9:2    0   7.5G  0 raid10 [SWAP]
├─sdd4    8:52   0     1K  0 part
└─sdd5    8:53   0   1.8T  0 part
  └─md3   9:3    0   3.6T  0 raid10 /mnt/data

你是如何设置RAID /启动的?我认为如果可以将/ boot置于RAID1上,那么也可以将它放在RAID5上,但无论我怎么做,我都会遇到不断的问题。最后,我得出结论,在尝试访问/启动之前,mdadm可能没有安装RAID,因此根本无法启动。
James Wilmoth

在Debian安装程序中,我提前放置了我的磁盘。我将编辑以包含我的磁盘布局;但Grub加载RAID1阵列就好了
Canadian Luke

啊......这可能是因为RAID1只是一面镜子。因此,您只需要根据需要在多个磁盘上镜像引导部分。我没有想到开箱即用,只限于通常用于RAID1的概念性2磁盘。谢谢!
James Wilmoth

嘿,还有一个问题......我看到你将你的/和交换数据拼接到单独的MD设备中。你有没有任何特别的理由在一个单独的MD设备上,就像我的布局一样?
James Wilmoth

@JamesWilmoth我的大脑处理我的布局更容易,所以这就是我经常做的布局
Canadian Luke
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.