/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
- 一度は
fdisk /dev/vdb
、唯一のパーティション/ dev / vdb1を1TBからフル容量の2TBに拡張したことがあります...参照fdiskを使用してパーティションのサイズを変更する方法 - Red Hat Customer Portal。 - それから[
resize2fs /dev/vdb1
]...
これはファイルシステムのサイズを変更しないことがわかります。理由は次のとおりです。
resize2fs
読み取りと同様に、カーネルからパーティションのサイズを読み取ります。その他のファイル。 fdisk
努力するパーティションテーブルに書き込んだ後、カーネルを更新します。ただし、パーティションの1つをマウントするなど、ディスクが使用されている場合、この操作は失敗します。
そのため、resize2fs
「何もしない」というメッセージが表示されます。追加のパーティションスペースは表示されません。
カーネルは起動時にパーティションテーブルを読み込みます。したがって、コンピュータを再起動するだけです。その後、実行すると追加のresize2fs
パーティションスペースが表示され、それに合わせてファイルシステムが拡張されます。
fdisk
スクリーンショットに示すように、このようなことが発生した場合は重要な警告が記録されると思います。この(そうでなければ古い)文書。
Red Hatのカスタマーポータルにはあまり慣れていませんが、実際には最新のドキュメントがあります。
再起動せずにRHEL6で新しいパーティションを使用するには?
~から
partprobe
ディスク上のパーティションテーブルへの変更をオペレーティングシステムに通知するために、RHEL 5で一般的に使用されます。 RHEL 6は、使用中のパーティションがない(マウントされたなど)ディスク上のパーティションを更新するようにOSのみをトリガします。ディスク上のパーティションが使用されている場合、partprobeは場合によっては安全ではないと見なされるため、システムのパーティションを更新するようにオペレーティングシステムを起動しません。したがって、一般的に次のことをお勧めします。
- ディスクのパーティションテーブルを変更する前に、ディスク上のすべてのパーティションをアンマウントしてから、システムで
partprobe
アップデートパーティションを実行してください。- これが不可能な場合(マウントされたパーティションがシステムパーティションの場合など)、パーティションテーブルを変更してシステムを再起動してください。再起動後、パーティション情報を再読み込みします。新しいパーティションが追加され、既存のパーティションが変更されていない場合は、partxコマンドを使用してシステムパーティションテーブルを更新することをお勧めします。 partx コマンドは、システムの新しいパーティションテーブルと既存のパーティションテーブルの間で多くのチェックを実行せず、ユーザーが自分が何をしているのかを知っていると仮定します。そのため、既存のパーティションを変更したりパーティションテーブルを誤って設定したりすると、ディスク上のデータが破損する可能性があります。したがって、使用による責任はユーザー自身にあります。
答え2
問題と直接的な関係はありませんが、resize2fs
パーティションが拡張パーティション内にある場合、期待どおりに機能しない可能性があります。
詳しくはこちらをご覧ください。Ubuntu ext4パーティションが期待どおりにGrowthpartまたはresize2fsを使用して拡張またはサイズ変更されない