修正する

修正する

/dev/vdb古い1TBディスクの既存のデータを含む新しい2TBディスク()を追加しました。

私が以前に1TBからフル容量を2TBに拡張したfdisk /dev/vdb唯一のパーティションです。/dev/vdb1(つまり、vdb1を削除して再作成してディスクをいっぱいにします。fdiskを使用してパーティションのサイズを変更する方法 - Red Hat Customer Portal)。

それから私は次のことをしました。

[root - /]$ fsck -n /dev/vdb1
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/vdb1: clean, 46859496/65536000 files, 249032462/262143744 blocks

[root - /]$ e2fsck -f /dev/vdb1
e2fsck 1.42.9 (28-Dec-2013)
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/vdb1: 46859496/65536000 files (0.4% non-contiguous), 249032462/262143744 blocks

[root - ~]$ resize2fs /dev/vdb1
resize2fs 1.42.9 (28-Dec-2013)
The filesystem is already 262143744 blocks long.  Nothing to do!

次のようになりますfdisk -l

Disk /dev/vdb: 2147.5 GB, 2147483648000 bytes, 4194304000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4eb4fbf8

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048  4194303999  2097150976   83  Linux

しかし、インストールすると:

mount /dev/vdb1 /mnt

これが私が得たものですdf -h

/dev/vdb1       985G  935G     0 100% /mnt

これはまだ古いパーティションのサイズです。

私がここで何を間違っているのか?

修正する

私は走ってpartprobe再起動するように求められました。

Error: Error informing the kernel about modifications to partition /dev/vdb1 -- Device or resource busy.  This means Linux won't know about any changes you made to /dev/vdb1 until you reboot -- so you shouldn't mount it or use it in any way before rebooting.
Error: Failed to add partition 1 (Device or resource busy)

だから再起動して再実行しました。

mount /dev/vdb1 /mnt

ただし、追加されたファイルシステムはまだ次のようになります。

/dev/vdb1       985G  935G     0 100% /mnt

どんなアイデアがありますか?fsck、、、e2fsckすべてを再実行する必要がありますか?resize2fs

本当に変です。再起動後にpartprobe再実行しましたが、まだ次のエラーが発生しました。

Error: Error informing the kernel about modifications to partition /dev/vdb1 -- Device or resource busy.  This means Linux won't know about any changes you made to /dev/vdb1 until you reboot -- so you shouldn't mount it or use it in any way before rebooting.
Error: Failed to add partition 1 (Device or resource busy)

デバイスまたはリソースが使用されているのはなぜですか?再起動後も?

答え1

  1. 一度はfdisk /dev/vdb、唯一のパーティション/ dev / vdb1を1TBからフル容量の2TBに拡張したことがあります...参照fdiskを使用してパーティションのサイズを変更する方法 - Red Hat Customer Portal
  2. それから[ resize2fs /dev/vdb1]...

これはファイルシステムのサイズを変更しないことがわかります。理由は次のとおりです。

resize2fs読み取りと同様に、カーネルからパーティションのサイズを読み取ります。その他のファイルfdisk 努力するパーティションテーブルに書き込んだ後、カーネルを更新します。ただし、パーティションの1つをマウントするなど、ディスクが使用されている場合、この操作は失敗します。

そのため、resize2fs「何もしない」というメッセージが表示されます。追加のパーティションスペースは表示されません。

カーネルは起動時にパーティションテーブルを読み込みます。したがって、コンピュータを再起動するだけです。その後、実行すると追加のresize2fsパーティションスペースが表示され、それに合わせてファイルシステムが拡張されます。


fdiskスクリーンショットに示すように、このようなことが発生した場合は重要な警告が記録されると思います。この(そうでなければ古い)文書

Red Hatのカスタマーポータルにはあま​​り慣れていませんが、実際には最新のドキュメントがあります。

再起動せずにRHEL6で新しいパーティションを使用するには?

~から

partprobeディスク上のパーティションテーブルへの変更をオペレーティングシステムに通知するために、RHEL 5で一般的に使用されます。 RHEL 6は、使用中のパーティションがない(マウントされたなど)ディスク上のパーティションを更新するようにOSのみをトリガします。ディスク上のパーティションが使用されている場合、partprobeは場合によっては安全ではないと見なされるため、システムのパーティションを更新するようにオペレーティングシステムを起動しません。

したがって、一般的に次のことをお勧めします。

  1. ディスクのパーティションテーブルを変更する前に、ディスク上のすべてのパーティションをアンマウントしてから、システムでpartprobeアップデートパーティションを実行してください。
  2. これが不可能な場合(マウントされたパーティションがシステムパーティションの場合など)、パーティションテーブルを変更してシステムを再起動してください。再起動後、パーティション情報を再読み込みします。新しいパーティションが追加され、既存のパーティションが変更されていない場合は、partxコマンドを使用してシステムパーティションテーブルを更新することをお勧めします。 partx コマンドは、システムの新しいパーティションテーブルと既存のパーティションテーブルの間で多くのチェックを実行せず、ユーザーが自分が何をしているのかを知っていると仮定します。そのため、既存のパーティションを変更したりパーティションテーブルを誤って設定したりすると、ディスク上のデータが破損する可能性があります。したがって、使用による責任はユーザー自身にあります。

答え2

問題と直接的な関係はありませんが、resize2fsパーティションが拡張パーティション内にある場合、期待どおりに機能しない可能性があります。

詳しくはこちらをご覧ください。Ubuntu ext4パーティションが期待どおりにGrowthpartまたはresize2fsを使用して拡張またはサイズ変更されない

関連情報