起動時にファイルシステムタイプをBASH変数として読み込みます。

起動時にファイルシステムタイプをBASH変数として読み込みます。

blkidエントリに指定されたファイルシステムタイプのbash変数を設定しようとする/etc/init.dファイルへの/etc/rc.d/S11リンクがあります。

root@OpenWrt:/# blkid /dev/mmcblk1p3
/dev/mmcblk1p3: UUID="77111d8a-feb7-470c-a489-ffa0e5415c4c" TYPE="f2fs"
root@OpenWrt:/#

awkコマンドにaを追加しようとしました。

root@OpenWrt:/# blkid /dev/mmcblk1p3 | awk '{print $3}'
TYPE="f2fs"
root@OpenWrt:/#

理想的にはこれだけ必要f2fsで、他は必要ありません。awk -F = '{print $3}'返品の使用

root@OpenWrt:/# blkid /dev/mmcblk1p3 | awk -F = '{print $3}' 
"f2fs"
root@OpenWrt:/# 

スクリプトでは、後でスクリプトで使用できるようにbash変数に設定してみました。

CUR_FS=$(blkid /dev/mmcblk1p3 | awk '{print $3}');

ただし、カーネルログに送信されたデバッグメッセージは空です。

echo "[DEBUG] Shield is in ${SHIELD_MODE} Mode - Using /dev/${MNT_POINT} as ${CUR_FS}" > /dev/kmsg

商品を返す

[   34.836024] [DEBUG] Shield is in Gateway Mode - Using /dev/mmcblk1p3 as 

空です。

誰かがOpenWrtにこの機能がないことを指摘する前にbash(デフォルトではAshを使用)、カスタムビルドとベーキングを実行していますbash

f2fs誰かが二重引用符なしで最終結果を得る方向を教えてもらえますか?

出力をblkidファイルに書き込むと、空のファイルが提供されます。

blkid /dev/mmcblk1p3 2>&1 > /tmp/output
lsblk --noheadings -o FSTYPE /dev/mmcblk1p3 2>&1 > /tmp/output2

編集者注:私のシステムではlsblkとblkidが分離されているので、両方のアプローチを試しました。それでも空白として表示されます。私はとても早く叫んだ?また、$PATHまだ設定されていない場合に備えて、コマンドにフルハードパスを入力してみました。まだ空です。

編集2:誰かがinitスクリプトがあまりにも早く呼び出されたことを提案しました。S99ほぼ最後に呼び出され、ファイルシステム呼び出しがまだ空になるようにテスト用のスクリプトを設定しました。

S99extrootは問題のスクリプトです。最初に私はS11

K10gpio_switch   K99umount        S19dropbear      S94gpio_switch                                                          
K10snort         S00sysfixtime    S19firewall      S95done                                                                 
K50dropbear      S10boot          S20network       S96led                                                                  
K85odhcpd        S10system        S35odhcpd        S98sysntpd                                                              
K89log           S11sysctl        S50cron          S99extroot                                                              
K90network       S12log           S50uhttpd        S99urandom_seed                                                         
K90sysfixtime    S12rpcd          S80ucitrack                                                                              
K98boot          S19dnsmasq       S90snort                                                                                 
root@OpenWrt:/# 

答え1

initblkデバイスが利用可能になるまで遅らなければなりませんでした。引き続き確認するようにループに入れて、while trueそうできるようにしますmknod

関連情報