如何將大目錄複製到外部硬碟 Linux

如何將大目錄複製到外部硬碟 Linux

我已經使用 fdisk(實際上是 gnu fdisk)將 3TB 外部硬碟格式化為 ext4,將其安裝在 /media/external 上,並嘗試將整個主目錄複製到其中。

我認為我的第一次嘗試是成功的,但過了一段時間,當進程停止時,我無法 cd 進入複製的主目錄。 cd 似乎失敗了:

sudo: cd: command not found

然後我認為 cp 可能有一些限制,然後再次嘗試使用 tar。

cd /from-stuff/
tar cf – . | (cd /to-stuff; tar xvf -)

我測量我的主目錄大小約為 100G。當在我的主目錄中時,我運行:

du -ch | grep total

我將其安裝為:

sudo mount -t ext4 /dev/sdd1 /media/external

請注意,我無法掛載/dev/sdd它顯示在sudo fdisk -l/dev/sdd1 上,而 /dev/sdd1 則沒有。

格式化時我做了最預設的設置,1個分割區,預設其他一切。我通過沒有任何“無效分區表錯誤”來確認格式化正確。我對此很陌生,所以請耐心等待。我可能不小心選擇了GUID?但不知道如何檢查它或將其重新格式化為可能需要的任何形式。

我有什麼明顯的錯誤行為嗎?有人可以提供一個 fdisk 序列來真正確保所有內容都是 1 個格式化為 ext4 的基本分割區嗎?

這是我關於格式化操作的文檔。如果可以的話請澄清/補充。在此之前可能有過一次失敗的 gparted 嘗試:

sudo fdisk /dev/sdb # this will pull up an interactive menu
n       # create a new partition
p       # create a primary partition
[enter] # use default value of 1 for the partition number
[enter] # use default value of 256 for first sector
[enter] # use default value for last sector
w       # write these settings and leave the interactive menu

# make the file system
sudo mkfs.ext4 /dev/sdb1

答案1

  • 有關sudo: cd: command not found

    那個是正常的。 cd 是 shell 內建指令。這並不意味著目標目錄不存在。如果您需要 root 權限才能轉到該目錄,請嘗試“su - root”,然後 cd 到目的地。

  • 關於 /dev/sdd 無法安裝的事實

    /dev/sdd 是整個 sd 磁碟(包括其主分割表、所有內容,甚至未分割的空間)。它不是一個分區。 /dev/sdd1 是它的第一個分割區。請注意:您顯示要掛載 /dev/sdd1 ,但您在 /dev/sdb1 上顯示 fdisk (另一個磁碟! /dev/sdb 與 /dev/sdd 不同)

  • 如果該新磁碟機要進行備份:您應該而不是使用 tar | ( cd dest ; tar),每次都會複製所有內容(如果目標檔案/目錄在來源上被刪除,則不會刪除它們),您應該查看該命令rsync。特別是在本機(而且在複製到遠端位置時,因為 rsync 只會複製每個已更改檔案的已更改部分,而不是整個檔案)。但謹防它的用法: rsync 一開始可能會很棘手。在閱讀大量相關內容之前,不要使用「--delete」選項,如果來源檔案或目標檔案在另一側沒有匹配項,它可能會刪除來源檔案或目標檔案...請參閱指定來源/目標目錄的不同方法,有時您會添加尾隨“/”,有時則不會,這取決於您希望 rsync 如何操作。

答案2

我猜你的問題是 fdisk 不支援大磁碟。它已被 取代parted

它與 fdisk 類似,只是針對新技術進行了更新。假設磁碟是 /dev/sdb (使用 進行檢查sudo parted -l):

  1. sudo parted /dev/sdb
  2. mklabel(型 gpt)
  3. mkpart(預設答案是建立一個最大大小的分割區)
  4. q 退出parted
  5. sudo mkfs.ext4 /dev/sdb1製作檔案系統。

之後就應該只是一個問題了sudo mount /dev/sdb1 /media/external。最好先確保您擁有該目錄sudo chown tarabyte.tarabyte /media/external

我通常用於rsync大型副本,甚至是本地副本。它具有更好的輸出,並且在出現中斷時可以輕鬆恢復。

rsync -avh --progress /from-stuff /to-stuff

請參閱man rsync以獲取更多資訊。

相關內容