mount -a работает, но при загрузке происходит сбой с сообщением «не удается найти UUID»

В репозиториях Ubuntu есть утилита под названием grub -customizer , которая позволяет управлять всем процессом загрузки, возможно, с некоторыми настройками вы сможете делать то, что говорите нам.
Ссылка программы:https://launchpad.net/grub-customizer

1
10.07.2019, 14:19
2 ответа

Мне кажется, что SysV плохо поддерживается. Я перешел на systemd, и без каких-либо изменений конфигурации мои диски теперь монтируются при загрузке, как и ожидалось.

FWIW для Debian/Raspbian, я только что сделал sudo apt-get purge sysvinit-core, который также автоматически установил libnss-systemdи systemd-sysv.

0
28.01.2020, 00:07

С помощью 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, но с помощью простого скрипта вы можете сделать основы.

0
28.01.2020, 00:07

Теги

Похожие вопросы