記一次將Gentoo系統從HD遷移至SSD

記一次將Gentoo系統從HD遷移至SSD

公司辦公的主力電腦,是一塊1T的機械硬盤,最近領導開心,給你們每人配了塊256G的固態硬盤,因而我今天把機械硬盤裏的Gentoo,遷移到了固態中。緩存

磁盤分區

插入SSD後,舊的HD由原來的sda變成了sdb,新SSD成了sda。bash

原來HD的分區內容以下:ide

sdb1,EFI分區,原來掛載至/boot/efi下。
sdb2,swap分區,
sdb3,/home分區,
sdb4,/分區,

加入SSD後,準備新舊硬盤混用,新分區規劃以下:ui

sda1,/分區
sdb1,EFI分區,掛至/boot/efi下。
sdb2,swap分區
sdb3,/home
sdb4,/var

/var放至HD下,以免對SSD的頻繁讀寫。code

現對固態硬盤進行分區:ip

root # parted /dev/sda

(parted) mklabel gpt

# 爲了對齊,以1做爲起始,使用整個SSD的95%
(parted) mkpart primary ext4 1 95%

# 檢查是否對齊
(parted) align-check optimal 1
1 aligned

(parted) quit

格式化分區get

root # mkfs.ext4 -E stride=128,stripe-width=128 /dev/sda1

拷貝文件

清理系統垃圾it

eclean distfiles
rm -rf /usr/portage/distfiles/*

掛載SSDclass

mkdir /mnt/gentoo
mount -o discard /dev/sda1 /mnt/gentoo

使用cp -av命令,將/下,除/dev/mnt/proc/run/tmp/var/sys之外全部目錄,拷貝至/mnt/gentoo下。此處也能夠使用dd命令。配置

而後手動建立/mnt/gentoo/run目錄

mkdir -v /mnt/gentoo/run

將原/var下目錄拷貝至/根下:

cp -av /var /

配置系統

掛載所需的目錄,而後chroot

mount -t proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev

chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"

使用blkid命令,查看硬盤的UUID。

編輯/etc/fstab文件,按硬盤分區規劃,完善文件。

#/dev/sda1
UUID=XXX / ext4 defaults,relatime,discard 0 1

/tmp分區,放到HD上:

mkdir -pv /var/tmp
ln -s /var/tmp /tmp

/etc/portage/make.conf下緩存文件的路徑,也設置到HD中。

安裝Grub引導

安裝,並配置grub

grub-install --target=x86_64-efi --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg

重啓系統

取消掛載,重啓系統,享受新系統。

exit

umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -R /mnt/gentoo
reboot

問題排查

剛安裝SSD後,系統沒法啓動,顯示沒法找到sda4。
緣由是原來HD變成了sdb,因此grub應該尋找的是sdb4纔對。

解決方法:
重啓計算機,在grub選擇菜單,近e進入編輯模式,將hd0修改成hd1,將sda4修改成sdb4,按F10從HD啓動系統。

相關文章
相關標籤/搜索