есть ли способ перезагрузить машину Linux, если основной диск завершится неудачей?

У меня есть небольшое встроенное устройство Linux, где корневая файловая система смонтирована через USB-соединение

устройство может справиться с сбросом достаточно хорошо (он будет ждать, пока USB-диск прибудет, если он будет отключен при загрузке)

однако, если диск будет отключен, устройство будет склоняться к клину, я бы предпочел, чтобы он просто перезагрузился?

есть ли опция ядра, которая заставит ядро ​​сбросить, если основной диск исчезнет?

Это довольно легко.

Вам нужно будет создать правило udev, инициированное при отключении USB-устройства для этого устройства. Это будут файлы в etc/udev/rules.d . Взгляните на этот вопрос в ServerFault для получения дополнительной информации.

Итак, мы установили, что вы можете запускать произвольные команды на USB-отключении событий с помощью ключевого слова PROGRAM .

Вторая часть этого – использовать «магический» ключ sysrq. См. Эту статью о Magic SysRq в Википедии о том, что вы можете сделать с ключом sysrq. Ключ также можно вызвать, повторив букву действия в /proc/sysrq-trigger . Это будет иметь тот же эффект, что и нажатие комбинации клавиш на вашей физически прикрепленной клавиатуре.

Поэтому правило udev будет:

 DRIVER="some_device", ACTION="remove", PROGRAM="/bin/echo b > /proc/sysrq-trigger" 

Это приведет к перезагрузке системы при some_device устройства some_device .

И это, конечно, предполагает, что «клином» вы не имеете в виду «яровую панику».