今天遇到一個問題,算是比較嚴重的把。就是要把當前系統轉移到 LVM 卷里面去,下面有一些發生過程介紹。
不感興趣可以直接跳過,看實戰部分《如何遷移系統至LVM卷》
| 朋友今天突然找我,說是要把系統的根分區磁盤擴大。接到這個問題,我馬上開始查看下系統情況。是一台 CentOS 6.6 的系統,有倆塊磁盤分別 vda1 是 15G 根,vda2 的 1G swap ,總大小是 21G 的一塊 vda !現在要求去增大 vda1 分區。 后面我給朋友三個方案:
朋友選擇了最后一種,我用了很多種辦法。網上說推薦是dd再是tar最后嘗試cpio、backup、dump,然后我沒辦法用了最后一種發現效果遠遠高於dd。 本次教程也是從頭再試驗一遍,並且記錄好便己便人。 警告:本文思路僅供參考!應該根據你的實際情況予以調整。如果在生產服務器上進行,請務必做好整個系統的全盤備份。操作不慎,有可能導致整個系統數據的丟失!本文作者及本站不對任何可能出現的風險承擔任何責任。 |
一、預備知識:
1、了解,什么是dd以及什么是dump?
2、嘗試,備份的需要如何恢復?
/dev/sdb1 的容量大於
/dev/sda1,且/dev/sdb1應為LVM卷)
我用虛擬機模擬了服務器的真實情況:/dev/sda1 是正常系統啟動分區、/dev/sdb1 是新的磁盤分區。
步驟一、用dump備份整個根分區,使用restore恢復。
步驟二、更改備份好的系統fstab文件以及更改boot下引導文件。

小竅門:Linux自帶的光盤一般都會急救的功能,善於利用!
二、環境模擬:
虛擬機設置及分區情況:

這里有兩種情況:一個是某分區,一個是新磁盤。兩者類似,為了方便本文使用的是新磁盤的方式。

三、實戰部分:
I、創建LVM卷
1、首先要確保系統是安裝lvm組件的,可以使用rpm -qa查詢信息

/dev/sdb1,然后在其上用
pvcreate 創建物理卷和
vgcreate 創建卷組 vgtest
pvcreate /dev/sdb1
vgcreate vgtest /dev/sdb1
lvcreate -L 25G -n lvtest vgtest
mkfs.ext4 /dev/mapper/vgtest-lvtest
II、備份MBR引導文件。
dd if=/dev/sda1 of=/mnt/grub/mbr.bin bs=512 count=1
III、備份 / 目錄和 /boot 目錄
1、備份 / 目錄。在 dump 命令前后輸入的 date 命令是為了查看備份使用的時長。
date && dump -0f /mnt/lvm/rootfs-20160824.bak / && date

2、為了安全引導我們也備份一下 /boot 目錄:
date && dump -0f /mnt/grub/boot-20160824.bak /boot && date

IV、嘗試恢復
1、還原 dump 的備份文件(/boot分區默認已包括在/分區)
date && restore -rf rootfs-20160824.bak && date
注意:這里boot文件需要更改成實際要啟動的磁盤。
dd if=/mnt/grub/mbr.bin of=/dev/sdb2

注意:這里使用dd命令恢復了之前備份的MBR文件。
VI、啟動文件

注意:這里為了體現是chroot的,將主機名改成了NEW。一定要chroot進入目錄查看是否能啟動!並且確定防火牆SELinux的設置,最最最重要的OPENSSH要打開的!
1、首先通過 blkid 查看分區的 UUID:
2、然后同步修改 /etc/fstab 文件以及切換了跟分區之后將變成的 /etc/fstab 中的根分區指向:

3、重啟生效
注意:這里我重啟了一下,同時可以看出我的fstab是ok的並且都生效了。
輸入:root (hd1,0)
輸入:setup (hd1)
再次輸入:quit

備注:如果通過上面的操作還是無法正常進入系統,可以嘗試進入DVD急救模式嘗試其他。

