LinuxForum.Fans
Тема

Неверные номера разделов в GRUB

Автор: NordWest 12 сообщений 3310 просмотров
#119526

У меня Debian5. Периодически устанавливаю обновления и зачастую после обновления и перезагрузки система не может загрузиться из-за неправильно указанного раздела hdb. Вот часть правильного menu.lst:

text

title        Debian GNU/Linux, kernel 2.6.26-2-686
root        (hd0,3)
kernel        /boot/vmlinuz-2.6.26-2-686 root=/dev/hdb4 ro quiet
initrd        /boot/initrd.img-2.6.26-2-686

Когда от портится, то вторая и третьи строки становятся:

text

root        (hd0,2)
kernel        /boot/vmlinuz-2.6.26-2-686 root=/dev/hdb3 ro quiet

Дело в том, что я после установки системы менял разделы. Линукс был установлен на один раздел, а потом я переделал так, чтобы /home был на отдельном. В результате порядок разделов не соответствует их именам: hdb1 (winsys) | hdb4 (/) | hdb2 -> hdb5 (swap) | hdb3 (/home).
Теперь приходится каждый раз править в меню строки при загрузке и потом сам menu.lst. Как бы теперь это дело поправить?

#119556

ну могу предложить поставить права 444 на menu.lst
а если граб поставить то который grub-pc 1.96 который?

#120766
mogul82 написал:
ну могу предложить поставить права 444 на menu.lst
а если граб поставить то который grub-pc 1.96 который?

Т.е. лишить возможности его изменения? Возможно и решение. А если найти причину? Почему он путает имена разделов? Можно ли их как-то переименовать в соответствии с реальным порядком...
граб такой: (GNU GRUB 0.97)

#120770

grub врятли имеет к этому отношение... покажите
[console]fdisk -l /dev/hdb[/console]

#120775


Disk /dev/hdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x2102ab58

Device Boot Start End Blocks Id System
/dev/hdb1 * 1 13112 105322108+ 7 HPFS/NTFS
/dev/hdb2 25909 26098 1526175 5 Extended
/dev/hdb3 26099 30401 34563847+ 83 Linux
/dev/hdb4 13113 25908 102783870 83 Linux
/dev/hdb5 25909 26098 1526143+ 82 Linux swap / Solaris

Partition table entries are not in disk order
#120776

ключевое здесь

Partition table entries are not in disk order

варианта 2:
- исправить порядок (меню extra в fdisk (конечно стоит сделать бэкап))
- настроить grub на использование uuid или label (соответственно и fstab)

#120781
odin написал:
ключевое здесь
Partition table entries are not in disk order

варианта 2:
- исправить порядок (меню extra в fdisk (конечно стоит сделать бэкап))
- настроить grub на использование uuid или label (соответственно и fstab)

Мда, 2 системных раздела на диске. Не хотелось бы их потерять. Не знаю где в консольной команде fdisk может быть меню extra. Не подскажите, как и чем сделать бэкап (и "чего" тоже, разделов, всего диска...), и где это меню собственно.
А по второму способу, может начать с установки более нового граба? Уже второй есть, а у меня вон нулевой ещё. Может там удобнее это сделать будет? Хотя я тут только недавно картинку при запуске настроил :)

#120784

[console]fdisk /dev/hdb
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help): x

Expert command (m for help): m
Command action
b move beginning of data in a partition
c change number of cylinders
d print the raw data in the partition table
e list extended partitions
f fix partition order
g create an IRIX (SGI) partition table
h change number of heads
i change the disk identifier
m print this menu
p print the partition table
q quit without saving changes
r return to main menu
s change number of sectors/track
v verify the partition table
w write table to disk and exit

Expert command (m for help):

[/console] тебе нужна команда f

+ http://xgu.ru/wiki/GRUB#.D0.9A.D0.B0.D0.BA_.D0.BF.D1.80.D0.B8.D0.B2.D1.8F.D0.B7.D0.B0.D1.82.D1.8C_.D0.BA.D0.BE.D1.80.D0.BD.D0.B5.D0.B2.D0.BE.D0.B9_.D1.80.D0.B0.D0.B7.D0.B4.D0.B5.D0.BB_.D0.BA_.D0.B8.D0.B4.D0.B5.D0.BD.D1.82.D0.B8.D1.84.D0.B8.D0.BA.D0.B0.D1.82.D0.BE.D1.80.D1.83_.28UUID.29_.D1.83.D1.81.D1.82.D1.80.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0.3F

#120788

Ясно, спасибо.
Ну а что может случиться? Вот нашел программу partimage. Допустим я с её помощью сохраню где-нибудь все разделы, включая виндовские. Жму 'f', всё ломается. Потом что? с установочного диска как-то получится восстановить разделы?
Или риск того не стоит? И лучше по второму варианту пойти?

#120850

Попробуйте эту команду. Полученные UUID впишите в конфиг загрузчика.
[console]# blkid
/dev/sda1: LABEL="FREEDOS" UUID="3932-1ADB" TYPE="vfat" SEC_TYPE="msdos"
/dev/sda2: TYPE="swap"
/dev/sda3: UUID="af44634f-f212-46bd-ad4b-90dcf9175e83" TYPE="ext3"
/dev/sda5: UUID="8f7518a0-114b-44cc-ac29-3df85e3cf36f" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda6: UUID="92148161-30c0-4fdf-981b-e1a0801ddf56" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda7: UUID="fd7f2075-7645-4a1a-8254-030e0113f066" SEC_TYPE="ext2" TYPE="ext3"
# [/console]

#123736
odin написал:

По этому описанию поправил fstab:


UUID=ab5266a3-3fa6-464c-85a7-be980aa1efcb / ext3 errors=remount-ro 0 1

Добавил строчку в device.map:

text

(hd0)    /dev/hdb
(hd1)    /dev/sda
(hd2)    /dev/sdb
(hd0,3) LIN_SYS

И в menu.lst изменил строку так:

text

kernel        /boot/vmlinuz-2.6.26-2-686 root=/dev/hdb4=LIN_SYS ro quiet

Перезагрузка не удалась. Пришлось вернуть на место.
Наверное надо так?

text

kernel        /boot/vmlinuz-2.6.26-2-686 root=LABEL=LIN_SYS ro quiet

А что делать с этой строкой?

text
root        (hd0,3)

Она тоже изменяется на (hd0,2).

Войдите или зарегистрируйтесь, чтобы ответить.