‘dd’ 命令磁碟副本保留舊大小
我最近升級了我的家庭伺服器,想把我的雲盤從 600GB 增加到 2TB。經過一番研究,我發現可以完全複製磁碟的 dd 命令,在我的情況下,這似乎是一個不錯的選擇,因為我的 nextcloud 實例的 docker 和數據庫的所有數據都在同一個磁碟上。
我成功地在我的電腦中複製並安裝了新磁碟,我的所有數據仍然完好無損。我的雲像往常一樣出現。我現在看到的唯一問題是新分區是 600gb 而不是 2TB(這是我所期待的)。在儀表板中,我的主磁碟也被列為 600gb。
我猜通過複製磁碟,我還複製了磁碟,認為它仍然更小。當我檢查時,
df -h
我看到磁碟在 /dev/sde1 上顯示為 600gb 磁碟,但是當我使用時,lsblk
我看到 sde `- sde1 顯示為 1.8T(我期待)。如何修復 /dev/sde1 以使用完整的 1.8TB?我用來將舊磁碟複製到新磁碟的命令
sudo dd if=/dev/sde1 of=/dev/sdk1 bs=4M status=progress
是使用正確的 if 和 to 屬性。先感謝您 :)。
據我所知,這只是意味著分區本身的文件系統仍然使用它的舊大小。在 linux 上調整磁碟大小時,大多數情況下您必須調整它的大小兩次。首先在分區方案(例如 GPT 或 MBR)中使用類似
parted
or的命令fdisk
,然後在文件系統中使用類似resize2fs
. 第二步很大程度上取決於使用的文件系統,如果您使用 zfs 或 btrfs 等其他命令,則可能需要另一個命令。
‘dd’ 程序複製分區中的每一位,包括描述它開始和停止位置的文件系統元數據。它還複製每個未使用的位。沒錯,您只是浪費了大量時間複製未使用的扇區。此外,每個壞塊(這將導致它出錯而不是繼續,除非你添加一個標誌來忽略錯誤)。它將使用相同的塊大小並寫入它,無論它是否與它所在的硬體不對齊。總而言之,
dd
將文件系統上的數據複製到另一個磁碟是一個糟糕的工具。您應該已經在磁碟上創建了一個新的文件系統,其分區與磁碟幾何形狀對齊,並且針對磁碟類型優化了塊大小。然後,您可以使用 tar、rsync、dump/restore 等僅複製文件系統上的數據*。*