
我想將現有的 Ubuntu Trusty (14.04.1) 系統(包括 PPA 中安裝的應用程式)轉移到 SSD。我想保留硬碟上現有的主目錄)。最好的方法是什麼,最好是不涉及重新安裝 Ubuntu 的方法?
答案1
從即時媒體啟動時,可分為 3 個步驟:
將作業系統資料複製到新驅動器
在開始之前,請確保新驅動器具有正確的分區表。 GPT(主要)用於 EFI,並且需要一個用於引導程式的特殊分割區。不要忘記在 MBR 安裝上將新作業系統分割區標記為可開機。
從即時媒體使用 rsync 應該是複製檔案的最實用的解決方案:
sudo rsync -av --exclude=/home/* /media/$mountpoint_of_old_drive/ /media/$mountpoint_of_new_drive/
將引導程式安裝到新驅動器
sudo grub-install --boot-directory /media/$mountpoint_of_new_drive/boot /dev/sdX
/dev/sdX
應變更為新磁碟機的實際設備名稱。如果您安裝的是 EFI 而不是 MBR,則應確保以 EFI 模式啟動即時媒體,運行
sudo apt-get install grub-efi-amd64
,已在新磁碟機上建立 EFI 系統分割區 (ESP),並且 ESP 已安裝到/media/$mountpoint_of_new_drive/boot/efi
(或使用--efi-directory
選項,看看grub 安裝手冊頁)。更新配置
/etc/fstab
您需要更新for中的 UUID/
。透過執行取得新作業系統分割區的 UUIDsudo blkid /dev/sdXY
,複製不含引號的 UUID,運行sudo nano /media/$mountpoint_of_new_drive/etc/fstab
並取代行中的現有 UUID,如下所示:# / was on /dev/sda2 during installation UUID=a7aea81b-0e7f-4ec0-8be4-b0ec75c13fdc / ext4 errors=remount-ro 0 1
Ctrl但在替換該行之前,您可能需要按+K和Ctrl+來複製它U。由於您的主目錄仍在舊磁碟機上,因此舊 UUID 應該是正確的,您只需將掛載點更新為
/home/$your_username
(替換$your_username
為使用者主目錄的名稱)和一些選項(注意最後的relatime,acl
和):2
# Mountpoint for home or user partition UUID=063a996a-0303-42b2-b719-af920fd105fa /home/$your_username ext4 relatime,acl 0 2
Ctrl使用+儲存並使用+O退出。CtrlX
您應該考慮將各個主目錄移動到單獨的目錄
home
-分割(它只是一個分割區,其中安裝了使用者的主目錄/home
,fstab
您可以sudo rsync -av
再次使用它來複製數據,請參閱如果 /home 目錄已經是 / 分割區的一部分,如何將其移至另一個分割區?),因為您必須以這種方式為每個使用者建立一個新行。如果您建立了一個新的交換分割區在 SSD 上,您也必須為此更新 UUID:
# SSD swap UUID=b7c315cb-cf89-463b-888a-185a1faa8250 none swap sw 0 0
另外,您需要更新 中交換分割區的 UUID ,第一次從新磁碟機啟動後
/media/$mountpoint_of_new_drive/etc/initramfs-tools/conf.d/resume
執行並重新啟動以具有sudo update-initramfs -k all -u
冬眠再次工作。請記得也要更新安裝點ESP對於 EFI 安裝,也在 fstab 中。
看起來很複雜,但做起來很簡單,只是詳細描述起來困難且冗長。
故障排除
grub-install 無法使用 UEFI 安裝
sudo apt-get install grub-efi-amd64
提示:當 GRUB 提到有關 . 的內容時,您可能會忘記執行i386-pc
。
/
您複製了根 ( ) 分區的內容,包括/boot
,對嗎?你複製了 ESP 的內容嗎?如果你還沒有這樣做的話。
編輯
EFI/ubuntu/grub.cfg
新的 ESP。如果沒有hd0,gpt2
相應地更改此範例中的部分,則將 UUID 替換為新根分割區的 UUID 應該就足夠了。文件內容通常如下所示:search.fs_uuid a7aea81b-0e7f-4ec0-8be4-b0ec75c13fdc root hd0,gpt2 set prefix=($root)'/boot/grub' configfile $prefix/grub.cfg
從您的啟動老的安裝,運行
sudo update-grub
os-prober 應該在另一個分割區上找到新安裝並新增一個 GRUB 條目。- 啟動這個新條目。
- 現在您應該從 SSD 啟動,
sudo update-grub
再次執行此處以更新並修復 SSD 上的 GRUB 設定。
- 執行
efibootmgr -c -d /dev/sdX -p Y -l \EFI\ubuntu\grubx64.efi -L "Ubuntu"
以將新安裝/轉移安裝的開機載入程式新增為 UEFI NVRAM 的新開機選項。/dev/sdX
是新硬碟的設備名稱、Y
分區號碼。