ファイルシステムの縮小後のパーティションサイズを小さすぎる値に調整

ファイルシステムの縮小後のパーティションサイズを小さすぎる値に調整

ext4以下を使用してファイルシステムを縮小しましたresize2fs

resize2fs -p /dev/sdn1 3500G

(2.3TBの場合はFS)

次に、partedを使用してパーティションのサイズを変更し、新しいパーティション設定が完了したら、0.3%の余白(〜10 GB)を残しました。

(parted) resizepart 1 3681027097kb

結局、これはあまりにもタイトであることが判明しました。

# e2fsck -f /dev/sdn1
e2fsck 1.42.9 (4-Feb-2014)
The filesystem size (according to the superblock) is 917504000 blocks
The physical size of the device is 898688000 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort<y>? yes

次に、今回は3%余白でパーティションのサイズを再調整します。

(parted) resizepart 1 3681027097kb

その後、ファイルシステムチェックに合格します。

# e2fsck -f /dev/sdn1
e2fsck 1.42.9 (4-Feb-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdn1: 278040/114688000 files (12.4% non-contiguous), 608536948/917504000 blocks

partprobe /dev/sdnこれら2つのコマンドをresizepart実行しました。

ファイルシステムをマウントせずに(まだマウントしていない状態で)、このプロセス全体を進めました。

パーティションサイズを小さすぎる値に調整する中間段階では、ファイルシステムが破損していますか?

成功した実行e2fsckだけでデータが破損していないことを確認できますか?

ベストアンサー1

パーティションサイズを小さすぎる値に調整してファイルシステムが破損していませんか?

特に、あなたはfs(c)キラーを防ぐのに十分親切だったので、あなたの場合はそうではありませんが、それを完全に排除することはできません。

たとえば、msdosパーティションテーブルの拡張パーティション内の論理パーティションの場合、破損が発生します。論理区画は連結リストであるため、連結リストの次の区画を指す論理区画の間にセクターがあります。これらの論理区画を縮小/サイズ調整すると、ディスクの中央のどこかで一部のセクター(部分)が上書きされます。

また、一部のパーティショナーはアイテムをゼロにするのが好きかもしれません。 LVMも同様です。すべてのlvcreateで生成されたLVの最初の4Kをゼロにし、誤ったlvresizeを元に戻すと、以前に使用したのと同じ範囲が提供されるという保証もありません。運が悪い場合は、LVが別の物理的な場所にある可能性があるため、以前に作成したサイズを変更しないと、vgcfgrestoreこれらの事故をキャンセルできます。/etc/lvm/{backup,archive}/

SSDには、さまざまなプログラムにSSDに承認されていないTRIMコマンドを実行させるTRIMトレンドがあります。 LVMは、issue_discards=1さまざまなパーティショナーがこの動作を採用しないことを望むと、lvm.confでこれを行います(常に0に設定)。

データが破損していないことを確認できるように、e2fsckを正常に実行していますか?

ほとんどのファイルシステムは、独自のメタデータ外のデータ破損を検出できません。このようなスタントを実行してはいけないので、一般的に問題にはなりません。バックアップがある場合は、ファイルのタイムスタンプ/チェックサムをバックアップの内容と比較できます。

ファイルシステムをマウントせずに(まだマウントしていない状態で)、このプロセス全体を進めました。

次のように読み取り専用でマウントできます。

mount -o loop,ro /dev/sdn1 /mnt/somewhere

次に、ファイルを表示します。

loop,ro読み取り専用ループデバイスを作成してマウントするようにマウントに指示します。驚くべきことに、一部のファイルシステム(.含まれています(全体ではなく1つのデバイスにのみ影響を与えるため、.などのマルチデバイスファイルシステムも含む))はroそれ自体を保証しません。ext4btrfsloop,ro

おすすめ記事