NetBSD 4.0.1. Как я напартачил в /etc/fstab
Итак, в процессе редактирования /etc/fstab я совершил ошибку и система не грузится. Естественно, переустановку системы исключаем. Загрузившись в single-user mode я не смог запустить vi, говорит не могу создать временный файл на разделе смонтированном для чтения(( Как я выкрутился?
1. Грузимся с установочного диска.
2. Когда он предлагает установить систему или выбрать другой режим, переходим в режим командной строки(есть среди пунктов меню) Utility menu -> Run /bin/sh
3. Монтируем ФС / (допустим винт определился у меня и используется как wd0)
#mount -o rw /dev/wd0a /mnt
4. Из доступных мне средств в качестве редактора оказался только ed [/bin/ed] (ed — первый стандартный текстовый редактор операционной системы UNIX, применялся в начале 1970-х. Расширенная его версия, известная как ex, послужила основой редактора vi./Википедия http://ru.wikipedia.org/wiki/Ed /) и sed [/usr/bin/sed] (http://ru.wikipedia.org/wiki/Sed).
Я пользовался ed
#/bin/ed /mnt/etc/fstab
Мои действия, я нашёл искомую строку, отредактировал (точнее, заменил) строку, сохранил содержимое редактируемого буфера (в данном случае это загруженный файл) в файл и вышел из ed.
5. Перезагрузился
#shutdown -r now
Очень краткая справка по командам потокового редактора ed:
. - напечатать текущую строку
+ - перейти к следующей строке
- - перейти к предыдущей строке
c - редактировать (заменить содержимое) текущую строку
w /mnt/etc/fstab - сохранить буфер в файл
q - выйти из редактора
P.S. Как выяснилось, можно перемонтировать корневой раздел и далее юзать ed, достаточно #mount -u / (спасибо spinore и shattered) без использования загрузочного диска
- tzar's blog
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 3961 просмотра
Цитата:говорит не могу
Угу. mount -rw / не пробовали? И не надо было бы грузиться с внешнего диска (точно не помню опции, но вот что я таким образом правил файлы из single-user - точно. При желании монтировал руками /usr и запускал и vim и zsh, чтобы не париться).
mount -rw / - попробую при
mount -rw / - попробую при случае, только там точно нужны опции по перемонтированию. Спасибо
-u The -u flag
-u The -u flag indicates that the status of an already mounted file system should be changed. Any of the options discussed above (the -o option) may be changed; also a file system can be changed from read-only to read-write or vice versa. An attempt to change from read-write to read-only will fail if any files on the file system are currently open for writing unless the -f flag is also specified. The set of options is determined by first extracting the options for the file system from the fstab(5) file, then applying any options specified by the -o argument, and finally applying the -r or -w option.Из man mount
Возможно, надо mount -u -w /
собственно, достаточно mount
собственно, достаточно mount -u /
в особых случаях (если сменилось имя диска, на котором /) -- mount -u /dev/... /
Всем спасибо за помощь,
Всем спасибо за помощь, вариант с mount -u я обязательно проверю, просто благодаря этой ситуации, помимо опции перемонтирования (спасибо снова), я наконец разобрался слегка с потоковым редактором ed и sed
Цитата:P.S. Как выяснилось,
А почему не vi? Оно вроде поудобнее будет.
Кстати, емнип. недавно ввели возможность писать комментарии в /etc/fstab, ранее её не было. И то ли в obsd то ли в nbsd исправили/допилили парсинг fstab, избавив его от проблемы "если хоть одна ошибка в файле при монтировании чего-нибудь, то не монтировать вообще ничего и падать в сингл-юзер".
vi, конечно, хорош, но в
vi, конечно, хорош, но в su-режиме его полным путём писать нужно для запуска а ed запускается просто ed
vi нужен termcap, ed и sed --
vi нужен termcap, ed и sed -- нет.