故障排除

故障排除

我想將現有的 Ubuntu Trusty (14.04.1) 系統(包括 PPA 中安裝的應用程式)轉移到 SSD。我想保留硬碟上現有的主目錄)。最好的方法是什麼,最好是不涉及重新安裝 Ubuntu 的方法?

答案1

從即時媒體啟動時,可分為 3 個步驟:

  1. 將作業系統資料複製到新驅動器

    在開始之前,請確保新驅動器具有正確的分區表。 GPT(主要)用於 EFI,並且需要一個用於引導程式的特殊分割區。不要忘記在 MBR 安裝上將新作業系統分割區標記為可開機。

    從即時媒體使用 rsync 應該是複製檔案的最實用的解決方案:

    sudo rsync -av --exclude=/home/* /media/$mountpoint_of_old_drive/ /media/$mountpoint_of_new_drive/
    
  2. 將引導程式安裝到新驅動器

    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 安裝手冊頁)。

  3. 更新配置

    /etc/fstab您需要更新for中的 UUID /。透過執行取得新作業系統分割區的 UUID sudo 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但在替換該行之前,您可能需要按+KCtrl+來複製它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-分割(它只是一個分割區,其中安裝了使用者的主目錄/homefstab您可以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-grubos-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分區號碼。

相關內容