將分區移到根分區

將分區移到根分區

我目前堅持使用限制性分割區方案,這使得我的分割區被填滿。它看起來像這樣:

/dev/sda7             870G  315G  511G  39% /
/dev/sda6             2.0G  271M  1.6G  15% /tmp
/dev/sda3              15G   13G  1.5G  90% /usr
/dev/sda2              15G  8.6G  5.0G  64% /var
/dev/sda1              99M   36M   58M  39% /boot
tmpfs                 7.9G     0  7.9G   0% /dev/shm

我想將資料移入/usr(也/var可能)移至根分區。我並不真正關心分區本身,因此不需要合併。

這樣做的最佳方法是什麼?目前,我的計劃是這樣的:

cp -R /usr /newusr
umount /usr
mv /newusr /usr

難道真的這麼簡單,還是我忽略了一些事情?

答案1

你的做法是正確的。在根分區上建立目錄,將資料複製到那裡,卸載usr分區並將新目錄移動到usr.不要忘記/etc/fstab事後編輯您的內容。

答案2

  1. 首先,您應該始終檢查是否有足夠的可用空間。這一次,你做到了。

  2. 關於副本:

沒那麼簡單。有些特殊文件的特殊屬性並不總是正確複製。而不是cp -R,使用

cp -vfa /usr /newusr

如果您想查看目前正在執行的操作,可以使用“-v”標誌來實現。

  1. 不要忘記編輯/etc/fstab更改。
  2. 警告:重新分區後,核心不能總是重新讀取新的分區表,因此它有可能會進一步使用舊的分區表!這是非常危險的!目前分割區表的核心版本可以在 中找到/proc/partitions,磁碟上的分割表可以用fdisk -l /dev/sda.如果您目前要變更的分割區不匹配,最好重新啟動。

答案3

為了實現這一點,需要在單一使用者模式下或使用 LiveCD(您可以在網路上找到)來完成此操作。

此外,可以在運行時執行此操作(當然有點冒險),但我認為這種方式僅適用於 /var 而不是/usr,一些運行時庫依賴此資料夾。如果確實有效,您可以先在測試機上嘗試。

首先你必須檢查是否有任何進程/服務正在使用/寫入您要移動的目錄。

lsof | grep -E '/usr|/var'

一般來說 /var 仍然用於 pid 和 sock 文件,/usr以及任何庫都需要它。

因此,停止/終止出現的服務和進程。

COMMAND    PID  TID        USER   FD      TYPE             DEVICE   SIZE/OFF       NODE NAME
cupsd      723             root    5u      REG                8,1          0    8651393 /var/log/cups/error_log
cupsd      723             root    6u      REG                8,1          0    8651908 /var/log/cups/page_log
cupsd      723             root   12u     unix 0xffff88020d97d780        0t0       9958 /var/run/cups/cups.sock

在這個簡短的範例中,cups 守護程式正在運行並使用這些目錄。如果停止它們,它們將不會出現在 lsof 輸出中。

之後,您需要當前資料的副本,我建議使用 rsync 而不是 cp (為了保留所有內容、權限、符號連結等)

mkdir /mnt/var
mkdir /mnt/usr

做好備份

rsync -avz /var/* /mnt/var
rsync -avz /usr/* /mnt/usr

解除安裝資料夾

umount /var
umount /usr

恢復數據

rsync -avz /mnt/var/* /var
rsync -avz /mnt/usr/* /usr

編輯你的/etc/fstab文件並評論/刪除其中的條目/var/usr應該安裝在哪裡。

然後您可以啟動所有已停止的服務或重新啟動電腦。如果對於/usr不起作用,你無法停止守護程序(也許你無法殺死它,因為取決於 init pid),唯一的方法是使用 LiveCD。

儘管您沒有提及機器是什麼類型(您的個人電腦、辦公室機器、伺服器等),但它將依賴於此來執行正式的方式。

相關內容