如何在不更改目錄結構的情況下從一個檔案系統移動到另一個檔案系統?

如何在不更改目錄結構的情況下從一個檔案系統移動到另一個檔案系統?

/dev/xvda1已滿,所以我想將其內容移至我的 30GBudev檔案系統上。

Filesystem      Size  Used Avail Use% Mounted on
udev             30G  4.0K   30G   1% /dev
tmpfs           5.9G  768K  5.9G   1% /run
/dev/xvda1      7.8G  7.4G     0 100% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none             30G     0   30G   0% /run/shm
none            100M     0  100M   0% /run/user

我怎樣才能做到這一點?

堆疊:EC2 Ubuntu 機器。

答案1

不要使用cp複製大量資料。
也使用rsync,因為如果中斷可以重新啟動。使用以下內容:

rsync -az -H /path/to/source  /path/to/destination

-a : Archive mode (i.e. recurse into directories, and preserve symlinks, file permissions, file modification times, file group, file owner, device files & special files) <br>
-z : Compress file data during the transfer <br>
-H : Preserve hard links (i.e. copy hard links as hard links)

正如評論者指出的那樣進行編輯,我沒有看到這是您的 / 目錄。
如果使用 bash 或 zsh 作為 shell,請新增:

--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"}

現在變成了

rsync -az -H --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /path/to/source  /path/to/destination 

否則,如果使用不同的 shell,您應該--exclude為每個不同的目錄執行一個聲明。

答案2

在大多數情況下,您不會將檔案從一個檔案系統移至另一個檔案系統。如果您要擴大虛擬機器中的磁碟或從同一磁碟取得更多空間,則需要擴大包含檔案系統的分割區,然後擴大檔案系統以填入分割區(使用哪些指令取決於分割區類型和檔案系統類型) )。如果您要移動到新磁碟,通常更快更容易複製整個分割區,然後按上述方法放大它。

就您而言,由於這是虛擬機,因此您需要先為其提供更大的磁碟。正如所指出的馬克普洛特尼克在評論中, 檢查AWS 指南;有一個用於附加新磁碟區的 Web 介面,還有一個用於執行複製(透過建立和還原快照)的 Web 介面。

請注意,這/dev不是儲存檔案系統,而是 RAM 中的檔案系統。它的 30GB 可用空間是可以儲存的最大資料量,但這會佔用 RAM 中的一大塊,並且在重新啟動時會遺失。再次,不要將任何檔案移動到/dev,它們將在您重新啟動時被刪除

相關內容