ターゲットで最新のBusyBoxv1.22.1を使用しています。 stat -f
またはdf -T
を使用してファイルシステムタイプを確認したいのですが、busyboxはそのようなコマンドをサポートしていません。 busybox help
は、stat
コマンドがサポートされていることを示していますが、
stat: not found.
BusyBoxを使用してファイルシステムタイプを確認するにはどうすればよいですか?
ビルドする前に、.config
でstat
とdu
を有効にする必要があります。
CONFIG_DU=y
CONFIG_STAT=y
BusyBoxの多くのコンポーネントはオプションです。コンパイル時にサイズと機能の間でどのような妥協が行われたかに応じて、ユーティリティとオプションが使用できる場合とできない場合があります。
Linuxでは、/proc
からファイルシステム情報を取得できます。 df -P /some/file
を実行して/some/file
のマウントポイントを見つけ、それを/proc/mounts
で検索して、ファイルシステムタイプを抽出します。 awkがあり、マウントポイントに空白がないと仮定すると、次のコマンドは、/some/file
が存在するファイルシステムタイプを出力します。
</proc/mounts awk -v mount_point="$(df -P /some/file | awk 'NR==2 {print $6}')" '$2 == mount_point {print $3}'
busybox help
がstat
を示している場合、それはアプレットが実装されていることを意味します。また、stat
が「notfound」を返す場合は、busybox
へのリンクが作成されていない可能性があります(そしてbusyboxはアプレットを呼び出すときにファイルを実行するように構成されています)。
次に、busybox help
を実行できるので、stat
の代わりにbusybox stat
も実行できるはずです。
busybox stat -fc %T /
また、busyboxコマンドは、busyboxへのシンボリックリンクを常に持っているとは限らないか、PATHにない場合があります。 RHEL6では「busyboxstat-f/dev/XXXX」が機能します。