Linux
如何以最少到零停機時間重新對齊邏輯卷上的磁碟
一個執行未對齊磁碟分區的系統,需要在不失去包括 mbr 在內的所有分區上的數據的情況下進行對齊,並且停機時間最短甚至沒有。
創建新的對齊分區
DISK=/dev/sdd(假設新磁碟指向 sdd)
dd if=/dev/zero of=$DISK count=1 bs=1M parted -s -- $DISK mklabel msdos parted -s -- $DISK mkpart primary ext3 64s 401624s parted -s -- $DISK mkpart primary 401628s 6144866s parted -s -- $DISK mkpart primary 6144868s 100% parted $DISK unit s print (echo t; echo 1; echo 83;echo t; echo 2; echo 82;echo t; echo 3; echo 8e; echo w) | fdisk $DISK (echo a; echo 1; echo w) | fdisk $DISK
安裝 Grub:
mkfs –t ext3 –L /boot dev/sdd1 mount $DSIK1 /mnt cd /mnt dump -0 -b 1024 -f - /boot/ | restore -r -f - -b 1024 cd / umount /mnt
蠐螬:
grub> device (hd1) /dev/sdd device (hd1) /dev/sdd grub>root (hd1,0) root (hd1,0) Filesystem type is ext2fs, partition type 0x83 grub> setup (hd1) setup (hd1) Checking if "/boot/grub/stage1" exists... no Checking if "/grub/stage1" exists... yes Checking if "/grub/stage2" exists... yes Checking if "/grub/e2fs_stage1_5" exists... yes Running "embed /grub/e2fs_stage1_5 (hd1)"... 15 sectors are embedded. succeeded Running "install /grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/grub/stage2 /grub/grub.conf"... succeeded Done. grub> quit
向 LVM 添加新磁碟:
pvcreate /dev/sdd3
擴展 sdd 到 myvg lvm 組:
vgextend /dev/myvg /dev/sdd
將數據移動到新磁碟(假設舊磁碟指向 sda):
pvmove –verbose /dev/sda3 /dev/sdd3
如果還有其他分區可以合併為一個分區:
pvmove –verbose /dev/sdd1 /dev/sdd3
刪除舊 LVM:
vgreduce /dev/myvg /dev/sda3 vgreduce /dev/myvg /dev/sda1 pvremove /dev/sda1 pvremove /dev/sda3
請注意,無需立即重新啟動系統。您可能需要確認重新啟動以確保在刪除未對齊的磁碟後啟動。