web-dev-qa-db-ja.com

sfdisk--no-readが機能しない

Debian 8でsfdiskを使用してパーティションを拡張しようとしています。次のコマンドを実行しています:

    sfdisk -H 255 -S 63 --quiet --Linux --leave-last -uM --force --no-reread /dev/md1 -N4 < /tmp/abc

コマンドを実行すると、次のエラーが発生します。

    Successfully wrote the new partition table
    Re-reading the partition table ...
    sfdisk: BLKRRPART: Device or resource busy
    sfdisk: The command to re-read the partition table failed.
    Run partprobe(8), kpartx(8) or reboot your system now,before using mkfs
    sfdisk: If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).)

--no-rereadについて言及したのに、なぜ再読み取りが発生するのですか? util-linux2.25.2のsfdiskでこれを実行しています。 sfdisk(util-linux-ng 2.17.2)からsfdiskで同じコマンドを実行しても、このエラーは発生しません。このエラーの原因となっている2つの違いはありますか?

4
vvnikhil

--no-rereadオプションは、デバイスが使用中であるかどうか(マウントまたはスワップなど)をチェックしないようにsfdiskに指示します。

発生しているエラーは、パーティション情報が変更されたことをkernelに通知するsfdiskからのものです。カーネルは「ねえ、このデバイスはすでに使用されています。新しいパーティションデータを読み取るつもりはありません」と応答しています。

そのため、パーティションデータのカーネルコピーは、ディスク上の実際のデータとは異なります。

--no-rereadがないと、sfdiskではパーティショニングをまったく実行できません。

5
Stephen Harris