ディレクトリ構造を変更せずに、あるファイルシステムから別のファイルシステムに移動するにはどうすればよいですか?

ディレクトリ構造を変更せずに、あるファイルシステムから別のファイルシステムに移動するにはどうすればよいですか?

/dev/xvda1がいっぱいなので、その内容を 30 GB のファイルシステムに移動したいと思いますudev

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)

コメント投稿者の指摘に従って編集しましたが、これが / dir だとは思いませんでした。
シェルとして bash または zsh を使用している場合は、以下を追加します。

--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 

それ以外の場合、異なるシェルを使用する場合は、--exclude異なるディレクトリごとにステートメントを実行する必要があります。

答え2

ほとんどの場合、ファイルをあるファイルシステムから別のファイルシステムに移動することはありません。仮想マシンのディスクを拡張する場合、または同じディスクからより多くのスペースを取得する場合は、ファイルシステムを含むパーティションを拡張してから、パーティションを埋めるためにファイルシステムを拡張します (使用するコマンドは、パーティションの種類とファイルシステムの種類によって異なります)。新しいディスクに移動する場合は、通常、パーティション全体をコピーしてから上記のように拡張する方が速く簡単です。

あなたの場合、これは仮想マシンなので、まずはより大きなディスクを用意する必要があります。マーク・プロトニックのコメント、チェックしてくださいAWS ガイド新しいボリュームを接続するための Web インターフェイスがあり、また、コピーを実行するための Web インターフェイスもあります (スナップショットを作成して復元することによって)。

これは/devストレージファイルシステムではなく、RAM 内のファイルシステムであることに注意してください。30GB の空き容量はそこに保存できるデータの最大量ですが、RAM からチャンクを消費し、再起動すると失われます。もう一度言いますが、ファイルを に移動しないでください/dev。再起動すると削除されます。

関連情報