現在80GBを持っています RAID (はい、そうです、それが私がそれを変更する理由です...) ext 約80%無料のLinuxデバイス以前のRAID0パーティションの1つを使用して、40 GB ext4 パーティションに変更したいと思います。別の大きなパーティションにすべてのファイル用の十分な空き領域があります。切り替えを行うために考えた最善の方法は次のとおりです。
cp -a
ファイルシステム上のすべてのファイルを大きなパーティションの下のディレクトリにcp -a
すべてのファイルを新しいパーティションに戻す問題は、特別なファイルプロパティ(Linuxのルートデバイス)が心配なことです。 cp -a
必要なファイルプロパティをall保持して、後で新しいパーティションを起動できるようにしますか?私はそれを行う別の方法を逃していますか?
私は...するだろう:
resize2fs -p /dev/<device_name_fs_is_on> 20G
のようなものでファイルシステムのサイズを変更しますfsck
を実行することをお勧めします。強制的に実行することもできますが、エラー(マイナーなものでも)でファイルシステムのサイズを変更しようとすると災害が発生する可能性があるため、fsck
操作を強くお勧めします。チェックが完了したら、サイズ変更コマンドを再実行しますdd if=/dev/<device_name_fs_is_on> of=/path/to/other/location/filesystem.img bs=1048576 count=20480
を使用して他のドライブにコピーしますdd if=/path/to/other/location/filesystem.img of=/dev/<new_device_name>
を使用してファイルシステムをコピーして戻しますresize2fs -p /dev/<new_device_name>
で埋めますこれはルートファイルシステムであるため、マウント中はファイルシステムのサイズを変更できないため(手順2)、ライブCDからこれを行う必要があります。
手順1でresize2fs
に渡された20Gを変更する場合は、手順2でdd
に渡された1048576x20480もそれに応じて変更してください。
明らかに、これはリスクのない操作ではないため、手順3の前に、他の方法でファイルシステム上の重要なデータと構成を個別にバックアップすることをお勧めします。
さらに安全性を高めるために:時間とディスクに余裕がある場合は、縮小したファイルシステムを追加のディスクに復元し、手順6と7に従って適切に再構成し、手順に進む前にそれを起動できることを確認します。 3.このようにして、古い場所からワイプする前に、ファイルシステムの完全に機能するコピーが他の場所にあることがわかり、その段階で問題を発見した場合、簡単に古いセットアップに戻して中止/再試行できます。
このようにして、個々のファイル、dir、およびデバイスノードではなく、ファイルシステムホールセールで操作しているときに、コピー中にファイル/ディレクトリ/デバイスのプロパティが失われることはありませんany。
私はそれを使ったことがありませんが、 System Rescue CD で利用できるpartimage
と呼ばれるパーティションイメージングプログラムがあります。
Partimageを使用するとどうなるかわかりませんが、cpを使用する場合(コピーするときにコピー先のディレクトリをコピーしようとしないように注意してください。cp -ax
が必要になる場合があります)。コピー中に変更される物理ハードディスクの場所をハードコーディングするため、Grubを再インストールします。