В репозиториях Ubuntu есть утилита под названием grub -customizer , которая позволяет управлять всем процессом загрузки, возможно, с некоторыми настройками вы сможете делать то, что говорите нам.
Ссылка программы:https://launchpad.net/grub-customizer
Мне кажется, что SysV плохо поддерживается. Я перешел на systemd, и без каких-либо изменений конфигурации мои диски теперь монтируются при загрузке, как и ожидалось.
FWIW для Debian/Raspbian, я только что сделал sudo apt-get purge sysvinit-core
, который также автоматически установил libnss-systemd
и systemd-sysv
.
С помощью sysvinit у вас есть три сценария начальной загрузки :«sysinit», «bootwait» и «boot» (через /etc/inittab ). Они монтируют устройства, загружают модули и т. д. ДО запуска уровней выполнения.
Корень уже смонтирован, /proc нужен первым. /sys, наверное, тоже.
Попробуйте подключить устройства UUID немного ПОЗЖЕ. Это означает, что вам нужно немного разделить ваш mount -a
и по-разному распределить (нет )опций auto в /etc/fstab. /proc и внешнее хранилище на самом деле не относятся к одному и тому же шагу монтирования.
Подумайте о systemd и всех этих "зависимостях".
Должен быть какой-то модуль (драйвер ), который необходим до того, как UUID -USB-устройство может быть смонтировано.
(Если вы используете initrd, это становится немного сложнее. Я знаю, как это может зависнуть в ожидании устройства "по -метке")
Чтобы изменить, вам нужно посмотреть на /etc/inittab
. Вот несколько строк из моего:
...
# Simple "old Linux" inittab from manpage:
# one (default) runlevel, 4 gettys, one bootwait rc-script
id:2:initdefault:
# sysinit/boot-scripts, they run first
#si::sysinit:/etc/sysinit.init
bw::bootwait:/etc/boot.init
# b::boot:/etc/rc
...
А это /etc/boot.init (скрипт "bootwait"):
#! /bin/bash
# Boot script, as defined in sysv inittab
echo "$0: starting...."
mountpoint /proc || mount -v -t proc Proc /proc
mountpoint /sys || mount -v -t sysfs Sys /sys
# root ro -> rw ?
# fed is ro, arch rw...
mount -o remount /
# Modules: for keyboard
modprobe -a xhci-pci usbhid hid-generic # i2c-hid
echo 0 > /sys/devices/virtual/graphics/fbcon/cursor_blink
echo "...$0 done"
Это все, что мне нужно, когда я загружаюсь с sysvinit. Неотъемлемой частью был модуль клавиатуры! Ничто не может работать, если ваша клавиатура мертва! Монтирование proc и sys немного роскошно -, просто обратите внимание, как я монтирую эти два виртуальных устройства вручную. Я пытался использовать /etc/fstab, но это не имело особого смысла. Минимальная команда простоmount -t proc none /proc
Команда mountpoint... || mount
мне понадобилась, потому что systemd initrd уже поставляется с смонтированными proc, sys и run (tmpfs ).И я не хотел видеть ошибку «уже смонтировано», а правильный вывод. Это не systemd, но с помощью простого скрипта вы можете сделать основы.