我试图把我的根分区移到基于物理卷的RAID上,而我似乎失败了。
我使用的程序有点复杂,但是这是因为我的托pipe服务提供商具有非常有限的安装能力,所以我无法使用在raid卷上使用lvm制作的根文件系统。
为了testing我的情况,我在VirtualBox中创build了4个磁盘的虚拟实例:
并在那里安装了Linux(Debian 8.5)。 最初安装后,布局是:
这是它的样子:
=# mount / mount: /dev/mapper/vg-root is already mounted or / busy =# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root vg -wi-ao---- 3.72g =# vgs VG #PV #LV #SN Attr VSize VFree vg 1 1 0 wz--n- 3.72g 0 =# pvs PV VG Fmt Attr PSize PFree /dev/sda1 vg lvm2 a-- 3.72g 0
现在,我需要/想要的是创build几个小型和大型磁盘袭击,并把他们。
所以,首先我创build分区。 由于我将需要重新分区/ dev / sda,它是中间布局,它看起来像这样:
=# for a in /dev/sd[abcd]; do fdisk -l $a; done | grep ^/ /dev/sda1 * 2048 7813119 7811072 3.7G 8e Linux LVM /dev/sdb1 2048 16777215 16775168 8G fd Linux raid autodetect /dev/sdc1 2048 16777215 16775168 8G fd Linux raid autodetect /dev/sdc2 16777216 41943039 25165824 12G fd Linux raid autodetect /dev/sdd1 2048 16777215 16775168 8G fd Linux raid autodetect /dev/sdd2 16777216 41943039 25165824 12G fd Linux raid autodetect
然后,我在/ dev / sd [cd] 2分区上创buildraid1:
=#mdadm -C / dev / md0 -l 1 –raid-devices 2 / dev / sd [cd] 2
这使我/ dev / md0,我将用作/ filesystem的临时位置:
=# pvcreate /dev/md0 =# vgextend vg /dev/md0 =# pvmove /dev/sda1 /dev/md0 =# vgreduce vg /dev/sda1 =# pvremove /dev/sda1
此时,/ dev / sda是免费的,所以我可以重新分区,以精确指定/ dev / sdb。 (这一步是相当无关的,但这只是为了完整性)。
现在,所有这一切,我更新mdadm.conf:
=# mdadm --detail /dev/md0 --brief >> /etc/mdadm/mdadm.conf && update-initramfs -u
这增加了一行:
ARRAY /dev/md0 metadata=1.2 name=debian:0 UUID=55692d54:b0beedae:9d85bc20:324d7f9f
有了这个,我重新启动系统,以确保它工作正常。 立即崩溃,在GRUB上,留言:
error: disk `lvmid/F9eO8I-PB9F-Dsli-ZOSY-rVA1-7a37-Faos46/1N3Ah7-wIjT-HFxc-MS9U-lAcw-tYZw-N7sRO8' not found. Entering rescue mode... grub rescue>
ls在提示符下显示:
(hd0) (hd0,msdos1) (hd1) (hd1,msdos1) (hd2) (hd2,msdos2) (hs2,msdos1) (hd3) (hd3,msdos2) (hd3,msdos1)
我做错了什么? 我忘了什么
您需要更新您的GRUB和引导内核安装。
update-initramfs -u 该命令会更新您的引导内核configuration以匹配系统的当前状态。
mdadm --detail --scan > /tmp/mdadm.conf 将/tmp/mdadm.conf内容复制到/tmp/mdadm.conf ,replace以前的任何条目。 这样MD设备configuration信息将是正确的。
update-grub 这将更新GRUBconfiguration,以便了解新设备。
dpkg-reconfigure grub-pc 这会将GRUB安装到服务器上的硬盘上。