Как исправить ошибку загрузки из-за неправильного fstab?


26

Кажется, я добавил неверную запись в /etc/fstab:

//servername/share    /mnt/share    cifs     defaults,username=myuser     0 0

Когда я это сделал mount -a, он попросил пароль пользователя для подключения к сети. Кажется, что это не может продолжаться без пароля при загрузке, поэтому он просто завис.

Как я могу исправить fstab, чтобы предотвратить сбой загрузки?

Ответы:


38

Кажется, я нашел решение:

  • в приглашении grub нажмите aдля добавления параметров
  • добавьте init=/bin/bashв конец командной строки ядра и нажмите Enter

Система загрузится с приглашением типа «bash-3.2 #», введите в командной строке следующие команды

  • mount -o remount,rw /
  • vim /etc/fstab

отредактируйте файл fstab, комментируя ошибки, добавив # в начале каждой проблемной строки, сохраните файл

  • перезагрузите, нажав CTRL + ALT + DEL

4
Мне пришлось использовать, mount -o remount,rw / --target /чтобы успешно перемонтировать в режиме RW. Elsecase mount выбирал неверные значения /etc/fstab, см. man mountПодробности.
Laconbass

1
@laconbass ты чертовски прав, --target /это ключ!
семпаша

Это все еще верно сегодня - более шести лет спустя. В любом случае, в CentOS7 ключом для изменения записи при загрузке теперь является tab, и однажды в bash вы должны смонтировать свою файловую систему (которая еще не размонтирована на данном этапе) с помощью простого mount /dev/sda(X) /mnt(очевидно,
заменяющего


Хороший ответ. Спасибо.
Мохамед Бана

2

Как насчет удаления записи, создания снимка и затем попытки изменить ваш / etc / fstab, чтобы у вас был рабочий снимок, к которому вы можете вернуться?

В соответствии с man-страницей mount.cifs вы также можете указать пароль через password=arg. Кроме того, согласно этой странице руководства, здесь нет аргументов, username=arg но вместо этого user=arg. Но это может отличаться в вашей системе, лучше проверьте вашу man-страницу для правильных имен аргументов.


manдля победы.
Тим

Я собирался создать снимок, но пока я экспериментировал fstab, экземпляр vm почему-то отключился. Судя по всему, я бы не стал задавать вопрос, если бы сам мог это исправить.
поочередно

2
Описание вашей проблемы немного неясно. Вы не можете загрузиться в режиме одного пользователя / восстановления? Следует только попытаться смонтировать root fs и оставить fstab в покое.
Scai

1

Другой простой способ - загрузиться в режиме live-cd и смонтировать нужный раздел. Тогда вы можете исправить все, что вы хотите!


1

Я нашел решение системной ошибки, не загружающей ядро. Используйте live cd, чтобы получить доступ к вашей существующей установке. После переустановки ядра Linux:

pacman -S Linux

Затем удалите файл fstab из etc / fstab:

rm /etc/fstab

Теперь переустановите systemd:

pacman -S systemd

При переустановке systemd он автоматически сгенерирует новый файл fstab

Теперь переустановите загрузчик, в этом случае я использую grub:

pacman -S grub os-prober

(проверка ОС полезна, если на вашем жестком диске / ssd установлено более 1 ОС).

grub-install --target=i386-pc /dev/sda

После завершения сделайте файлы конфигурации:

grub-mkconfig -o /boot/grub/grub.cfg

Затем размонтируйте используемые разделы и перезагрузите

umount /dev/sdX 
reboot

Это должно решить проблему, у меня это сработало.


0

Может быть, я опоздал. Но это к вашему сведению. В этой ситуации вы можете использовать nano для загрузки fstab и перезапустить после редактирования fstab.

sudo nano /etc/fstab
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.