だから、USB3.0スティックから正しく起動しない奇妙なラップトップがあります。 Grubおよびinitramfs
がロードされますが、奇跡的にスティックはマウントされません。ただ待つと、マシンはbusyboxシェルにドロップします。 blkid
はスティックをリストしません。しかし、その前に正しいタイミングでスティックを再接続すると、Ubuntuが正しく起動します。
それで、それを自動化しようと思いました。私は自分でrestart_usbシェルスクリプトを取得し、/etc/initramfs-tools/scripts/init-premount
、およびupdate-initramfs -u
。
ここからが面白い部分です。新しいinitramfs
の生成中にスクリプトが実行されるため、usbがリセットされ、それによって実行中のLinuxがパーティションにアクセスできなくなります。そこではハードリセットのみが役立ちます。
だから私の質問は次のとおりです。マウントする前に実行するスクリプトをどのように配置するか/
によって実行されずにinitramfs
にupdate-initramfs
?
乾杯。
編集:Ubuntu 14.04の新規インストール(更新なし)を実行しています。
同様の問題があったので、initramfs
に含まれる他のスクリプトを調べました。どうやら、「トリック」はスクリプトヘッダーにあり、次のようになります。
#!/bin/sh
set -e
case $1 in
prereqs)
prereqs
exit 0
;;
esac
case
ステートメントは重要な部分です。
このドキュメント に記載されていますが、正確な順序付けを必要としない場合でも、このヘッダーを含める必要があるとは述べていません。