日常折騰 -- 遷移archLinux到固態

遷移自己的archLinux到新的硬盤時遇到了很多坑,記一下,說不定以后用的著


思路

  • 借鑒了網上的各種操作,總體的操作思路就是克隆當前的分區到新的硬盤分區中,只是使用的工具各不相同,常見的是使用tar打包或者使用dd直接復制分區

  • tar命令相對于dd來說效率比較低,且還需要手動解壓到新分區,好處是留下了一個原系統的備份。個人在使用時還踩了坑,系統的體積比較大,處理器又比較渣,壓縮過程中直接變僵尸,浪費了我一個晚上時間等待。

  • dd相對來說比較好用,但是這里有個大坑,使用dd命令前需要自己確保新的分區大小不小于原來的分區,當你使用dd命令時,它不會自己檢測大小,而是直接復制,結果復制完了新分區的空間,發現地方不夠了才報錯... 又是浪費大把的時間。

  • 還有一些可視化工具,像ClonezilladoClone等,都可以克隆系統,不過個人沒有嘗試。

解決

  • 使用dd克隆分區之前,先使用gparted進行分區大小調整
    注意: gparted不能安裝在當前操作系統中,對于正在使用的分區,它將不能進行壓縮操作。因此,需要安裝在live USB(即燒錄到啟動盤)或者其它的Linux操作系統中(對于多系統電腦)。個人使用的ubuntu 20.04的啟動盤,上面有預裝的gparted

  • 調整好分區大小后不要退出啟動盤,直接使用dd命令復制分區到目的位置

  • 踩坑: 由于dd也會將uuid復制,此時原分區的uuid與新分區的相同,如果這時退出啟動盤進入系統(不要退出,這條及下條都是我踩的坑),查看系統發現還是掛載的原來的分區(/dev/sda8)。

  • 要想掛載新的分區,就需要改變兩者的uuid,但使用這個問題中提供的命令時,發現需要將該分區卸載才能繼續。對于正在運行的系統,/home肯定是不能卸載的:

  • 因此,繼續在啟動盤中進行更改uuid的操作

  • 使用下面命令更新新分區的大小

$ sudo resize2fs /dev/sdb5 
  • 更改完成后,啟動系統。掛載分區已經改變。


最后

  • 只遷移了系統的/目錄,/boot目錄并未遷移。也不影響系統運行速度,遷移/boot可能還需要處理其它幾個系統的引導,懶得搞了,以后再說吧。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。