Linux
如何更改分區?
我有一個帶有/,/ home的硬碟。我剛得到新的 SSD,我需要更改我的分區而無需重新安裝。我想創建一個單獨的 /var 分區(目前位於 / 下)並將其保留在硬碟上。其餘的/(包括/boot)我想移到ssd。我應該如何在 ubuntu 12.04 中做到這一點?
cat /etc/fstab proc /proc proc nodev,noexec,nosuid 0 0 UUID=4f614ad4-8b21-4e21-b6fc-13ba7f489a88 / ext4 errors=remount-ro 0 1 UUID=dba112c1-1647-4e73-b907-0117ad3a058e /home ext3 defaults 0 2 UUID=01CB6A18FD7DF1C0 /windows/c ntfs defaults,umask=007,gid=46 0 0 UUID=01CB6A18E6F42370 /windows/d ntfs defaults,umask=007,gid=46 0 0 UUID=48d5b437-91c9-4304-9bde-ee661779089d none swap sw 0 0
我也有一些 lvm 分區,但它們與這個問題無關
他們這樣做的方法是根據需要對 SSD 進行分區(/、/boot、/home 等),並且由於您將所有內容都移動到新的 SSD,因此您無需擔心縮小分區或任何事情那樣複雜。您基本上只需將所有內容複製到 SSD,重新分區 HDD 並在磁碟和 fstab 中編輯您的掛載點。
準備遷移
- 備份您目前的硬碟!
- 對 SSD 進行分區
出於展示的目的,我將使用這些分區:
- /dev/sdb1 – /啟動
- /dev/sdb2 – /
- /dev/sdb3 – /home如果需要,您可以省略 /boot 並將其保留為 / 中的普通目錄,就像您目前所做的那樣。
- 在新分區上創建文件系統(
mkfs.ext4
或mkfs
.whatever 您想要的文件系統)- 在目前文件系統的層次結構下掛載新分區。例如,將 SSD 上的新 / 掛載為 /mnt,將 SSD 上的新 /boot 和 /mnt/boot 掛載,SSD 上的新 /home 掛載為 /mnt/home
- 例如:
mkdir -p /mnt/newroot mkdir /mnt/newroot/boot mkdir /mnt/newroot/home mount /dev/sdb2 /mnt/newroot mount /dev/sdb1 /mnt/newroot/boot mount /dev/sdb3 /mnt/newroot/home
從 HDD 遷移到 SSD ------------- 1. 將所有內容複製(保留時間戳、權限和所有權)到新分區中。 您可以使用以下一組命令
-ax --sparse=always / /mnt/newroot -ax --sparse=always /home /mnt/newroot /home
或者
ync -avSx / /mnt/newroot ync -avSx /home /mnt/newroot/home
這些將使用存檔標誌進行複制(保留文件所有權和其他資訊),在可能的情況下進行稀疏複製,並且不會跨越源文件系統上的文件系統邊界。如果您沒有指定`-x`保留在文件系統中的標誌,您可以在一個命令中進行複制,但需要採取措施從副本中排除 /proc、/dev 和其他記憶體中的文件系統。 2. 編輯文件 /mnt/newroot/etc/fstab 並更改條目以反映新分區 3. 將 grub 安裝到新磁碟(如果它將是您的引導設備)並將其指向 SSD 上的新 /boot,以便它可以找到其引導配置。 4. 解除安裝新分區。
umount /mnt/newroot/home umount /mnt/newroot/boot umount /mnt/newroot
驗證遷移 ---- 1. 重新啟動到新分區 * 如果您正確設置 grub 並且新的 /etc/fstab 是正確的,則引導的行為將與以前完全相同,只是它使用的是新分區而不是舊分區。 2. 驗證一切是否正確。 * 如果沒有預料到的事情,您將保留舊磁碟並進行備份。什麼都沒有失去。然而。 * 除了在新磁碟上複製它們之外,我沒有關於 Windows 分區的建議(使用複製工具,或者`dd`,如果你正在移動它們) * 如果您要雙啟動到 Windows,請驗證是否仍然可以工作並且 Windows 是否在 SSD 上(如果您想要 SSD,如果您將其保留在 HDD 上,那也可以) * 這些天我沒有跟上Windows的速度,所以我在這方面沒有什麼可提供的。 ### 此時,您的 SSD 上應該有一個工作系統,該系統是 HDD 上的複製。超出這一點的任何步驟都將對您的舊數據造成破壞。在繼續之前進行備份 重新調整硬碟的用途 --------- 1. 重新分區硬碟 * 如果您沒有接觸 Windows 分區,只需刪除您不再需要的 linux 分區並為 /var 和您需要的任何其他分區創建一個新分區。 * 如果您確實將 Windows 移至 SSD,則可以完全重新分區 HDD。 2. 為新的 /var 創建文件系統 3. 將這個新的 /var 臨時掛載為 /mnt/var 什麼的
mkdir /mnt/var mount /dev/sd?? /mnt/var
4. 停止依賴 /var 的服務或進入單使用者模式 * 這是必需的,因為如果在複製期間守護程序正在寫入 /var,當我們切換到新的 /var 時,您將失去這些新數據。單使用者模式也是執行級別 1(`init 1`在 sysvinit 上,不確定新貴) 5. 將舊 / var 複製到新 / var
cp -av –sparse=always /var /mnt/var
6. 刪除舊的 /var (保留目錄,但使其為空)。
rm -rf /var mkdir /var
7. 解除安裝新的 /var
umount /mnt/var
8. 編輯`/etc/fstab`並為 /var 添加一個條目 9. 掛載 /var(如果您編輯了 fstab,這將是新的)。
mount /var
10. 重新啟動您停止的任何服務或返回多使用者模式(或根據需要重新啟動) 這個一般過程應該可以幫助您進行遷移,最重要的一步是備份,以防萬一您搞砸了。