項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 search-input 尚未註冊或是沒有一個 view.php 檔案.

【Linux 系統控制 #5】linux / ubuntu 複製硬碟的方法 copy all disk

前言

我們有時買了一台新電腦,當我們懶得把一個又一個的應用程式重裝,
這是後我們會想是不是能夠直接「複製整個硬碟」就好了呢?

這一次就是來分享在 linux / ubuntu 上複製硬碟的技術

事前準備

準備兩顆硬碟,查詢硬碟位置

去 ubuntu 的 menu 打開 disks
確認新舊硬碟的名稱(不含數字)

例如下圖中:舊 /dev/sda, 新/dev/sdb

我們可以看出,這顆硬碟只剩下 88GB for free,也就是這是舊的硬碟
記得記下來舊的硬碟是 /dev/sda (1代表的是第一個分割,暫時我們先不用管)

一看就知道是新插的硬碟,
記得記下來新的硬碟是 /dev/sdb (1代表的是第一個分割,暫時我們先不用管)

安裝

我們要安裝 gddrescue 這個套件,來幫助我們完成硬碟複製的任務。

sudo apt-get install gddrescue

複製

  • 從舊的硬碟 /dev/sda 複製到新的硬碟 /dev/sdb

注意:順序一定要搞清楚!!!! 不然用空的洗掉正常的… 我也救不了你QQ

sudo ddrescue -v /dev/sda /dev/sdb --force

等待跑完就完成囉!

後續處理 & debug

運氣好的話,其實基本上沒有什麼需要後續處理的

狀況一:用複製硬碟開機後沒有回應

請準備一顆可以開機的硬碟,或者可以開機的 USB,
因為我有特別準備一個 ubuntu 的安裝碟,
我使用裡面內建的「Try Ubuntu」的「Live demo」功能。

我們需要打開一個終端機來進行操作:

1. 尋找並複製新硬碟的 UUID

這時候可能你已經先把舊的硬碟移除了,
應該新的硬碟就會成為 /dev/sda

可以透過以下指令找到該硬碟的 UUID

ls /dev/disk/by-uuid/ -al

2. 尋找並複製新硬碟的 UUID

因為沒有 vim,我們只能使用 gedit
(如果是其他可開機硬碟,使用 vim 當然也是可以的!)

sudo gedit /media/ubuntu/XXXXX(你的硬碟的UUID)/etc/fstab

3. 在 /etc/fstab 中加入新 mount 的硬碟,格式如下

UUID=你的 UUID    /   ext4    errors=remount-ro   0   1

重新開機應該就可以正常開機了! 如果有其他狀況可以繼續往下看!

狀況二:(ubuntu18) 無法正常進入系統,進入了 fsck 修復模式

  • 如圖:

執行以下指令後,重新開機即可。

fsck -y /dev/sda1
sudo mount -a # 測試用,沒有跳出訊息才是正常的!! (有跳出訊息就是有問題)
reboot # 重新開機

狀況三:(ubuntu18) 無法正常進入系統,進入了 grub 修復模式

  • 如圖:

此問題發生的原因是在硬碟拆裝的時候,
導致 BIOS 的設定跑掉了,
請進入 BIOS 設定 「legacy mode + UEFI 啟動模式」或 「legacy mode only」 就能正常啟動了!

Reference

Linux 檔案系統掛載(mount)使用教學與範例