
興味深いシナリオに遭遇しました。
私はDebian Live CDイメージをいくつか持っています(試してみましたがdebian-8.11.0-amd64-netinst.iso、debian-9.6.0-amd64-netinst.isoおよび live-build を使用して構築したいくつかのカスタム イメージ) とdd
そのイメージを USB ドライブに保存します。
USB ドライブを使用してコンピューターを起動し、ハードドライブに Debian をインストールします。
インストールが完了すると、コンピューターが再起動します。
この時点で、ログインした後、まだ接続されている USB ドライブを使用できないことがわかりました。
であることはわかります/dev/sdb
が、/dev
USB ドライブのパーティションは表示されません。
試してみましたfdisk -l /dev/sdb
が、 になりましたfdisk: cannot open /dev/sdb: No medium found
。
関連していると思われるのはdmesg
2行だけです
sd 2:0:0:0: Attached scsi generic sg1 type0
sd 2:0:0:0: [sdb] Attached SCSI removable disk
興味深いのはここです。
ドライブを取り外して再度差し込むと、ドライブが検出され、正常に動作します。
ボックスを再起動しても(reboot
またはpoweroff
電源を入れてから)、動作しません。
ただし、ボックスの電源を切った後、ドライブを取り外して再度差し込むと、次回の起動時に動作します。
Debian インストーラーには、再起動とインストールのループを回避するために USB ドライブの動作を防止する何らかのメカニズムがあるのではないかと考えました。
いくつかのファイルを調べたところ、/bin/live-medium-eject
USB デバイスに対して何も行われず、次のコメントがあることがわかりました。
# ignoring usb mass storage devices
# (they need coldreboot to recover)
この動作の原因は何でしょうか?
編集1
Ubuntu 18.04 と CentOS 7.6 も試しました。Ubuntu は Debian と同じ動作をしますが、CentOS は最初の起動時に USB ドライブを認識できます。