256MBのRAMと4GBのeMMCを搭載したBeaglboneブラックベースのカスタムボードを持っています。
ソフトウェアを更新するためのスクリプトがボードにあります。
スクリプトは、次のコマンドを使用してgptパーティションテーブルを消去します。
#Delete primary gpt (first 17KiB)
dd if=/dev/zero of=/dev/mmcblk0 bs=1024 count=17
#Delete secondary gpt (last 17KiB)
dd if=/dev/zero of=/dev/mmcblk0 seek=3735535 bs=1024 count=17
パーティションは削除されますが、スクリプトは同じ数のパーティションからeMMCを再パーティションします。その後、(e2fsprogsバージョン1.42.13)を使用して各パーティションをフォーマットしよう
とします。mkfs.ext4
パーティションをフォーマットすると、mkfs.ext4
パーティションにファイルシステムがあり、過去の特定の日にマウントされたと文句を言い続ける必要があるかどうかを尋ねます。
/dev/mmcblk0p15 contains a ext4 file system labelled 'rootfs'
last mounted on /mnt/rfs_src on Fri Feb 16 13:52:18 2018
Proceed anyway? (y,n)
以前のバージョンのIEでは、e2fsprogではこれが起こらず、1.42.8
同じスクリプトが機能しました。
リリースノートでは、いくつかの構造に追加されているe2fsprog-1.42.13
ことがわかります。last mounted
これで問題は、last mounted
パーティションからこの情報を削除する方法です。
試しましたが、wipfs -a
同じ動作が発生します。 eMMCをゼロにする方法の1つですが、時間がかかります。
どの提案/ポインタがありますか?
ベストアンサー1
~からmkfs.ext4次のマニュアルページ:
-F Force mke2fs to create a filesystem, even if the specified device is not a partition on a block special device, or if other parameters do not make sense. In order to force mke2fs to create a filesystem even if the filesystem appears to be in use or is mounted (a truly dangerous thing to do), this option must be specified twice.
-F
問題を回避し、無人で実行し続けるには、スクリプトにオプションを追加するだけです。mkfs.ext4
説明では、「または他のパラメータが意味がない場合」ということは明確ではありません。もう一度確認しましたが、1つだけが必要なため、-F
マウントされたファイルシステムが誤ってフォーマットされるのを防ぎます。
最後にインストールされたディレクトリはこれとは何の関係もないと思います。もっと安全機能を追加しただけです。同様に、いくつかの最新バージョンのインタラクティブなfdiskまたはgdiskはその逆を実行します。つまり、新しいパーティションを作成するときに古いファイルシステムの存在を検出すると、削除署名が提供されます。