💾 Archived View for ramax.flounder.online › gemlog › 2017-01-11-t450-add-ssd.gmi captured on 2023-07-22 at 16:22:15. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-17)
-=-=-=-=-=-=-
2016 年的最後一天,大家都要去跨年,但是我沒去。在這一年將要結束的這一天,我決定要幫我的 Lenovo T450 擴充硬碟空間,並且要在安裝後還能夠恢復原來的工作環境。這是一個大工程,值得我用一天的時間好好地搞一搞。
根據 Lenovo 的硬體維護手冊[1],T450 有二個 M.2 插槽;其中一個已被 Wifi 網卡使用,另一個則原本是供 WWAN 使用,但若未購買搭 WWAN 的機器,就會多出一個插槽可供利用。另外需要注意的是,M.2 介面的 SSD 有二種通訊協定規格,一個是 SATA,另一個是 PCIe,並不是所有的筆電都支援這二種協定,故購買前一定要先上網查清楚,以免白花錢。又還有一點要注意,就算你確定了通訊協定規格,也不是所有廠商的 SSD 都可以和你的筆電相容,多查查網上的討論串,儘可能買有成功案例的廠牌會比較保險些。總之 M.2 SSD 就是這麼麻煩的東西。
1: https://download.lenovo.com/pccbbs/mobiles_pdf/t450_hmm_en_sp40a27225.pdf
有興趣的人可以參考這個連結[2]了解更多關於 M.2 SSD 的細節。
2: http://www.tpuser.idv.tw/wp/?p=2647
好啦,買好了 SSD,也順利地安裝上去(硬體安裝步驟略過不提),打開筆電開關,BIOS 也順利抓到了硬體,接下來才是工程的主要部分:搬移系統檔案,設定以 SSD 為開機硬碟。以下將大略走一下執行步驟。
3: https://software.opensuse.org
sudo dd if=openSUSE-Leap-42.2-DVD-x86_64.iso of=/dev/sdX bs=1M
當然你也可以用其他的 Linux 開機映象檔,只要有具備救援模式功能即可。
首先用 USB 隨身碟開機,選擇救援模式,進入到命令列模式,然後分割 SSD 並且格式化:
fdisk /dev/sdX mkfs.ext4 /dev/sdX1
接著將原系統磁區掛載到 `/tmp/root`, SSD 磁區掛載到 `/tmp/root2`:
mkdir /tmp/root mkdir /tmp/root2 mount /dev/sdY1 /tmp/root mount /dev/sdX1 /tmp/root2
開始複製檔案:
rsync -auv --exclude="lost+found" /tmp/root/ /tmp/root2
複製的時間可能會很久,端看你的資料量而定。
最重要的檔案就是 `/etc/fstab`,這個檔案控制了使用那一個磁區來掛載 root 檔案系統,故當你搬移完系統檔案後,一定要記得更新這個檔案。
原來的檔案內容如下:
UUID=dedaf79c-24e4-468f-a03c-7616cdfa8385 swap swap defaults 0 0 UUID=e9912870-b350-4040-9ed3-386a4a5f849e / ext4 acl,user_xattr 1 1 UUID=77ec7af0-cc2c-44a5-8bc3-6c7913273ab6 /home ext4 acl,user_xattr 1 2
更新為:
UUID=dedaf79c-24e4-468f-a03c-7616cdfa8385 swap swap defaults 0 0 UUID=cc3aa415-2c1f-43bd-a810-e0cf3d1614be / ext4 acl,user_xattr,discard 1 1 UUID=77ec7af0-cc2c-44a5-8bc3-6c7913273ab6 /home ext4 acl,user_xattr 1 2 none /tmp tmpfs defaults 0 0
注意我這邊使用的是檔案系統的 UUID 來掛載磁區,`/` 的掛載磁區換成了 SSD,並且加上了 `discard` 參數;另外使用 tmpfs 來掛載 `/tmp` 目錄,以避免大量的暫存檔案存在 SSD,降低 SSD 的壽命。
檔案系統的 UUID 可用指令 `ls -l /dev/disk/by-uuid` 查詢。
首先要 chroot 到新的系統目錄:
mount --bind /dev /tmp/root2/dev mount --bind /sys /tmp/root2/sys mount --bind /proc /tmp/root2/proc chroot /tmp/root2 /bin/bash
更新 GRUB 設定檔:
grub2-mkconfig -o /boot/grub2/grub.cfg
安裝開機啟動程式到 SSD 的開機啟動磁區 (MBR):
grub2-install /dev/sdX
退出 chroot 環境:
exit
卸載目錄:
umount /tmp/root2/dev umount /tmp/root2/sys umount /tmp/root2/proc umount /tmp/root2 umount /tmp/root
重新啟動電腦:
reboot
然後進入 BIOS,設定使用 SSD 做為開機硬碟,打完收工。