因為原來是500G的機械硬盤据过,實際使用才幾G惋砂。所以打算換成容量小的固態(tài)硬盤,或者鏡像虛擬化云化改造绳锅,虛擬磁盤小西饵。
網(wǎng)上搜索的教程,基本上是不支持遷移到小硬盤的鳞芙,都得比源盤一樣大或者更大眷柔。
收集源磁盤相關(guān)信息
此步驟很重要,后面需要在新的磁盤創(chuàng)建相同的分區(qū)表原朝。
fdisk -l
記住紅框內(nèi)和箭頭指向的內(nèi)容闯割,后面需要用到。
啟動CentOS安裝盤竿拆,按步驟進(jìn)入命令行
可在官網(wǎng)下載相同大版本的系統(tǒng)安裝盤,Minimal或者NetInstall版本都可以宾尚。
添加新的虛擬磁盤并掛載(或者掛載U盤丙笋、移動硬盤等)
注:新的虛擬磁盤或者U盤都是作為中轉(zhuǎn)磁盤使用谢澈。
虛擬磁盤需要格式化(ext4),U盤或者移動硬盤等格式OK只需要掛載御板。
下面以添加新的虛擬磁盤為例:
fdisk -l #查看一下新添加的磁盤是哪個锥忿,本機是/dev/sdb
mkfs.ext4 /dev/sdb #輸入y回車確定格式化
mkdir /data && mount /dev/sdb /data #掛載/dev/sdb到/data
mkdir /sda1 /sda2 /centos-root #根據(jù)原盤分區(qū)創(chuàng)建對應(yīng)文件夾,準(zhǔn)備掛載
mount /dev/sda1 /sda1 #掛載/dev//sda1到//sda1
mount /dev/sda2 /sda2 #掛載/dev/sda2到/sda2
vgchange -ay centos #激活VG卷組centos
mount /dev/centos/root /centos-root #掛載VG卷組centos-root到/centos-root
備份文件到中轉(zhuǎn)的磁盤
cp -aur /sda1/* /data/sda1/ #復(fù)制sda1的數(shù)據(jù)到中轉(zhuǎn)盤
cp -aur /sda2/* /data/sda2/ #復(fù)制sda2的數(shù)據(jù)到中轉(zhuǎn)盤
xfsdump -f /data/centos-root.dump /centos-root #使用xfsdump創(chuàng)建原盤根目錄鏡像到中轉(zhuǎn)盤
============================= dump label dialog ==============================
please enter label for this dump session (timeout in 300 sec)
-> centos-root #指定備份會話標(biāo)簽怠肋,此處需要手動輸入
session label entered: "centos-root"
--------------------------------- end dialog ---------------------------------
============================= media label dialog =============================
please enter label for media in drive 0 (timeout in 300 sec)
-> sda3 #指定設(shè)備標(biāo)簽敬鬓,就是對要備份的設(shè)備做一個描述
media label entered: "sda3"
--------------------------------- end dialog ---------------------------------
xfsdump: Dump Status: SUCCESS
備份完成后,執(zhí)行init 0
關(guān)機
移除原始盤笙各,添加新磁盤钉答,按原盤進(jìn)行分區(qū)
移除原始盤防止文件分區(qū)錯亂,也防止誤刪誤格式化原盤杈抢。
開機数尿,重新進(jìn)入到Live CD的SHELL命令行中
#因本文環(huán)境中原盤使用的是GPT分區(qū),故需要使用parted來創(chuàng)建GPT分區(qū)
parted /dev/sda #注意查看新的磁盤是否是sda
mklabel gpt #然后輸入yes確定創(chuàng)建GPT
quit #退出
fdisk /dev/sda #使用fdisk繼續(xù)創(chuàng)建分區(qū)
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n #創(chuàng)建分區(qū)
Partition number (1-128, default 1): #回車
First sector (34-125829086, default 2048): #回車
Last sector, +sectors or +size{K,M,G,T,P} (2048-125829086, default 125829086): +200M #創(chuàng)建200M惶楼,根據(jù)原盤大小確定
Created partition 1
Command (m for help): n #創(chuàng)建分區(qū)
Partition number (2-128, default 2): #回車
First sector (34-125829086, default 411648): #回車
Last sector, +sectors or +size{K,M,G,T,P} (411648-125829086, default 125829086): +1024M #創(chuàng)建1024M右蹦,根據(jù)原盤大小確定
Created partition 2
Command (m for help): n #創(chuàng)建分區(qū)
Partition number (3-128, default 3): #回車
First sector (34-125829086, default 2508800): #回車
Last sector, +sectors or +size{K,M,G,T,P} (2508800-125829086, default 125829086): #使用剩下空間,直接回車
Created partition 3
Command (m for help): t #修改分區(qū)類型
Partition number (1-3, default 3): 1 #選擇第一分區(qū)
Partition type (type L to list all types): 1 #根據(jù)原盤歼捐,選擇修改為EFI分區(qū)
Changed type of partition 'Linux filesystem' to 'EFI System'
Command (m for help): t #修改分區(qū)類型
Partition number (1-3, default 3): 2 #選擇第二分區(qū)
Partition type (type L to list all types): 11 #根據(jù)原盤何陆,選擇修改為Microsoft basic分區(qū)
Changed type of partition 'Linux filesystem' to 'Microsoft basic data'
Command (m for help): t #修改分區(qū)類型
Partition number (1-3, default 3): 3 #選擇第三分區(qū)
Partition type (type L to list all types): 31 #根據(jù)原盤,選擇修改為Linux LVM分區(qū)
Changed type of partition 'Linux filesystem' to 'Linux LVM'
Command (m for help): p #顯示分區(qū)表
Disk /dev/sdb: 64.4 GB, 64424509440 bytes, 125829120 sectors
Disk label type: gpt
Disk identifier: 20B7D567-3D8C-45D4-9BBF-E0911D5EA883
# Start End Size Type Name
1 2048 411647 200M EFI System
2 411648 2508799 1G Microsoft basic
3 2508800 125829086 58.8G Linux LVM
Command (m for help): w #確定分區(qū)無誤豹储,輸入w保存退出
The partition table has been altered!
根據(jù)原盤分區(qū)格式贷盲,格式化分區(qū)
mkfs.vfat /dev/sda1
mkfs.xfs /dev/sda2
創(chuàng)建根目錄和swap使用的邏輯卷,并掛載
pvcreate /dev/sda3 #創(chuàng)建PV卷
vgcreate centos /dev/sda3 #創(chuàng)建VG卷
lvcreate -L 48G -n root centos #創(chuàng)建根目錄lv卷颂翼,注意修改容量大小晃洒,不能超過sda3的大小,需要留一部分空間給swap使用
lvcreate -l 100%FREE -n swap centos #使用剩下空間創(chuàng)建swap lv卷
mkfs.xfs /dev/centos/root #格式化根目錄分區(qū)
mkswap /dev/centos/swap #格式化swap交換分區(qū)
掛載新磁盤和中轉(zhuǎn)磁盤
mkdir /centos-root /sda1 /sda2 /data
mount /dev/sdb /data
mount /dev/sda1 /sda1
mount /dev/sda2 /sda2
mount /dev/centos/root /centos-root
還原文件和鏡像到新磁盤
cp -aur /data/sda1/ /sda1/* #復(fù)制中轉(zhuǎn)盤的sda1數(shù)據(jù)到新磁盤
cp -aur /data/sda2/ /sda2/* #復(fù)制中轉(zhuǎn)盤的sda2數(shù)據(jù)到新磁盤
xfsrestore -f /data/centos-root.dump /centos-root #使用xfsrestore還原根目錄鏡像到新磁盤
修改fstab文件磁盤標(biāo)識方式UUID
blkid #獲取磁盤的UUID
vi /centos-root/etc/fstab #對應(yīng)修改然后保存
修復(fù)系統(tǒng)引導(dǎo)
注意系統(tǒng)引導(dǎo)方式是BIOS還是UEFI
#CD下的SHELL更新方法:
grub-mkconfig -o /sda1/boot/grub/grub.cfg #BIOS引導(dǎo)
grub-mkconfig -o /sda1/EFI/centos/grub.cfg #UEFI引導(dǎo)
init 0 #關(guān)機
#進(jìn)入系統(tǒng)后的SHELL更新方法:
grub-mkconfig -o /boot/grub/grub.cfg #BIOS引導(dǎo)
grub-mkconfig -o /boot/efi/EFI/centos/grub.cfg #UEFI引導(dǎo)
掃尾工作朦乏,處理網(wǎng)卡UUID問題
移除中轉(zhuǎn)磁盤球及,調(diào)整系統(tǒng)引導(dǎo)方式。
開機后發(fā)現(xiàn)網(wǎng)卡UUID有變更呻疹,對應(yīng)修改即可吃引。
nmcli con #查看網(wǎng)卡的UUID信息,記下UUID值
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0 #修改對應(yīng)地方刽锤,然后重啟網(wǎng)絡(luò)
systemctl restart network