Какой лучший способ исправить неисправный fstab? Я думаю, что я мог бы сделать это с некоторым дистрибутивом Linux linux. Сначала ищите разделы и монтируйте их во временный созданный /temproot. Вручную смонтируйте разделы, которые вы узнали один за другим, во вновь созданный /temproot. очень важно установить правильную файловую систему каждого раздела и раздела подкачки. После этого с помощью команды chroot исправьте исходный корень. Кто-нибудь знает лучший способ - любое предложение приветствуется?
1 ответ
После того, как вы загрузили live CD, вам сначала нужно будет определить разделы, как вы предлагаете.
Использование parted даст пару подсказок:
# parted /dev/sdc P
Number  Start   End     Size    Type      File system     Flags
 1      1049kB  2155MB  2154MB  primary   linux-swap(v1)
 4      2155MB  212GB   209GB   extended
 5      2156MB  3230MB  1074MB  logical   ext3
 6      3231MB  5378MB  2147MB  logical
 7      5379MB  48.3GB  42.9GB  logical   ext4
 2      212GB   319GB   107GB   primary   ext4
 3      319GB   320GB   1080MB  primary   ext3            boot
Здесь мы можем видеть, что sdc1 является swap - так что это легко.
Обратите внимание, что sdc 3 имеет включенный загрузочный флаг, так что, скорее всего, это загрузочный раздел (флаг помечает его как загрузочный раздел, но это не обязательно раздел /boot).  Загрузочные разделы, как правило, небольшие, так как они не должны содержать много.  В этом случае другой вероятный кандидат /dev/sdc5 - реальная загрузка
Если мы установим это,
$ mount /dev/sdc5 /mnt
$ grep root /mnt/grub/grub.cfg
set root='(hd2,5)'
linux   /vmlinuz-2.6.32-5-xen-amd64 root=UUID=5d41ba76-8261-41cd-b147-1f034833f0a1 ro  quiet
Если ваш grub.cfg (или menu.lst) использует имена устройств, то вы будете знать, кто является пользователем root, однако в этом случае мы используем UUID, поэтому нам нужно идентифицировать устройство:
ls -l /dev/disk/by-uuid/5d41ba76-8261-41cd-b147-1f034833f0a1
lrwxrwxrwx 1 root root 10 Jan 18 08:45 /dev/disk/by-uuid/5d41ba76-8261-41cd-b147-1f034833f0a1 -> ../../sdc7
Итак, теперь мы знаем, что корневым разделом является /dev/sdc7
Монтирование остальных по очереди, как предложено, поможет вам идентифицировать остальные разделы. Нет необходимости выполнять chroot в среде, вы можете просто отредактировать fstab напрямую:
mount /dev/sdc7 /mnt
vi /mnt/etc/fstab
И воссоздайте записи.
Обратите внимание, что файл /etc /mtab создается при монтировании разделов.  Это может все еще быть нетронутым, если вы не смогли загрузиться, так как fstab сломался, так что вы можете посмотреть в /etc/mtab и восстановить информацию о монтировании оттуда.  Обычно вы можете копировать строки, как они есть в mtab, прямо в fstab.
