Ubuntu

用新硬碟替換硬碟 - Ubuntu 20.04

  • June 25, 2021

我正在與 Ubuntu 20.04 一起雙啟動 Windows 10。我的 Ubuntu 分區是 60gb,但空間不足。我正在嘗試用更大的磁碟替換磁碟,但我不想複製 Windows,而且我擔心我可能會失去來自 Ubuntu 的文件。做這個的最好方式是什麼?

您要做的是將舊磁碟的映像製作到新磁碟上。您將需要一個可啟動的 Live CD 或 USB 拇指驅動器(如果您的電腦可以從拇指驅動器啟動),最好是 Ubuntu 20.04。如果您的 Windows 分區不是驅動器上的第一個分區(或至少在引導分區、UEFI 分區等之後的第一個分區),那麼您還需要一個 Windows 安裝盤。

  1. 對所有重要文件進行備份,因為任何像這樣弄亂磁碟的行為都有可能失去數據。
  2. 關閉電腦,將新磁碟連接到系統。
  3. 從 Live CD 啟動。
  4. 打開一個終端,然後鍵入ls /dev/sd?,這將列出您的系統辨識的所有硬碟驅動器。你應該看到兩個,/dev/sda/dev/sdb。如果您看到其他任何內容,請停下來並在這裡詢問您需要做什麼。
  5. 現在我們需要弄清楚哪個磁碟是舊的,哪個是新的。鍵入sudo fdisk /dev/sda。如果它抱怨找不到 MBR 或分區表,那麼這是新磁碟。如果它沒有抱怨,這是舊磁碟。如果這是舊磁碟,鍵入p以獲取磁碟上所有分區的列表,並用手機拍照;我們以後可能需要所有這些數字。在任何一種情況下,使用q退出 fdisk。
  6. 使用 重複步驟#5 sudo fdisk /dev/sdb,只是為了驗證您的磁碟標識符是否正確。此外,如果/dev/sdb是舊磁碟,您需要拍攝分區列表的照片。
  7. 這是一個危險的步驟,因此請絕對確保您在正確的位置安裝了正確的設備節點。要實際製作圖像,請鍵入sudo dd if=<old drive> of=<new drive> bs=4M status=progress
  8. 去喝杯咖啡什麼的。這需要一段時間。
  9. dd完成後,鍵入,然後sudo fdisk <new drive>使用p命令列印分區列表並將其與您拍攝的舊驅動器分區列表的圖片進行比較。如果所有數字都匹配,那麼恭喜你,你完成了!如果不是,則意味著新磁碟使用的塊大小與舊磁碟不同,因此您將不得不完全重新創建分區表。使用d命令一一刪除分區(這不會刪除數據,只刪除分區資訊),然後使用n命令使用照片中的數字一一重新創建分區,然後使用t命令更改每個分區的類型以匹配它在舊磁碟上的類型。畢竟,使用p再次命令以重新驗證分區是否與照片匹配,以及將w更改寫入磁碟的命令。
  10. 關閉系統,取出舊磁碟並將其放在一邊以備不時之需。

此時,您應該能夠在 Windows 和 Linux 中啟動到新磁碟。由於這是您舊硬碟的精確映像,所有文件、設置、安裝的軟體等一切都將完全相同。當然,這也意味著您的 Linux 分區將與以前一樣大小,並且仍然會一樣滿。為了真正能夠使用您花費這麼多麻煩獲得的額外空間,您將需要進行一些分區編輯。

再次從 Live CD 啟動,然後打開 GParted。這是一個非常易於使用的程序,可讓您移動和調整分區大小。只需選擇一個分區,然後點擊工具欄上的“調整大小/移動”按鈕即可移動或調整其大小。如果您對某事改變主意,則會有一個“撤消”按鈕。一旦您按照您想要的方式獲得了所有內容,請點擊“應用”按鈕以實際進行更改(點擊應用後您無法撤消)。但是,有一些問題需要注意:

如果您有一個單獨的/boot分區,您可以隨意移動和調整主 Linux 分區的大小。但是,如果您不這樣做,移動 Linux 分區的開頭將(暫時)使您無法啟動 Linux。幸運的是,Ubuntu 附帶了一個名為“boot-repair”的程序來修復此類問題。

  1. 啟動到您的 Ubuntu Live CD(如果您還沒有的話)。
  2. 使用以下三個命令安裝 boot-repair(需要 Internet 訪問權限):sudo add-apt-repository ppa:yannubuntu/boot-repair, sudo apt-get update,sudo apt-get install -y boot-repair
  3. 通過鍵入 執行引導修復sudo boot-repair,然後按照它提供的說明進行操作。它將為您提供有關係統的更多資訊的連結;如果它不起作用,請給我們那個連結。

Windows 也有類似的問題;如果您移動 Windows 分區的開頭,它將無法啟動。要修復它,請從 Windows CD 啟動,進入命令行(有關如何獲取命令行的具體細節因版本而異,您只需四處尋找,直到找到它),然後鍵入bootrec /fixmbr. 請注意,這可能會禁用對您的 Linux 系統的訪問,因此一旦 Windows 正常工作,您還需要按照上述步驟修復 Linux 啟動。

引用自:https://unix.stackexchange.com/questions/645899