web-dev-qa-db-ja.com

BusyBoxでファイルシステムフォーマットを確認してください(stat-fとdf-Tは機能しません)

ターゲットで最新のBusyBoxv1.22.1を使用しています。 stat -fまたはdf -Tを使用してファイルシステムタイプを確認したいのですが、busyboxはそのようなコマンドをサポートしていません。 busybox helpは、statコマンドがサポートされていることを示していますが、

stat: not found.

BusyBoxを使用してファイルシステムタイプを確認するにはどうすればよいですか?

1
user81906

ビルドする前に、.configstatduを有効にする必要があります。

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 helpstatを示している場合、それはアプレットが実装されていることを意味します。また、statが「notfound」を返す場合は、busyboxへのリンクが作成されていない可能性があります(そしてbusyboxはアプレットを呼び出すときにファイルを実行するように構成されています)。

次に、busybox helpを実行できるので、statの代わりにbusybox statも実行できるはずです。

busybox stat -fc %T /
0

また、busyboxコマンドは、busyboxへのシンボリックリンクを常に持っているとは限らないか、PATHにない場合があります。 RHEL6では「busyboxstat-f/dev/XXXX」が機能します。

0
Stew Benedict