Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: wfw в Aug 21, 2010, 18:28



Титла: Проблем със зареждането след кернел ъпдейт, при смяна от ATA към SATA root диск
Публикувано от: wfw в Aug 21, 2010, 18:28
Здравейте,
ситуацията е следната: Дебиан 5 Лени, беше инсталиран на хард диск АТА интерфейс, след като хард диска се прецака реших да сложа SATA диск на негово място. Двата файла, които трябва да се променят при миграцията на диска са /etc/fstab и /boot/grub/menu.lst където се замества hda с sda.

Дотук добре, машината работи няколко месеца без проблем, докато не дойде ъпдейт на кернела. Ъпдейтнах го с apt-get. След ъпдейта машината не искаше да зареди. Проблема го установих. Ъпдейтването на кернела по някакъв начин е презаписало /boot/grub/menu.lst и е върнало старите настройки, където търси кернел-а в hda, а не в sda.

Целта ми е да предотвратя бъдещ подобен проблем, тъй като машината е далеч и е тъпо, ако забравя някой път да променя menu.lst след ъпдейт на кернела да трябва да ходя до машината.


Титла: Re: Проблем със зареждането след кернел ъпдейт, при смяна от ATA към SATA root диск
Публикувано от: vladi246 в Aug 21, 2010, 20:30
Предполагам че някъде си е записало за основен диск /dev/hda и по дефайлт си го копилира така,просто трябва  да се види кой е файла и да се коригира


Титла: Re: Проблем със зареждането след кернел ъпдейт, при смяна от ATA към SATA root диск
Публикувано от: n00b в Aug 21, 2010, 23:06
Файла който е трябвало да редактираш се казва:
/boot/grub/grub.cfg

След обновяване на kernel-a се изпълнява един скрипт:
update-grub

а той е един stub и изпълнява:
grub-mkconfig -o /boot/grub/grub.cfg


Титла: Re: Проблем със зареждането след кернел ъпдейт, при смяна от ATA към SATA root диск
Публикувано от: wfw в Aug 21, 2010, 23:23
vladi търсих целия /etc и не намерих нищо интересно.

n00b версията ти звучи много логично, но не мога да намеря да имам такива файлове grub-mkconfig както и grub.cfg. няма нищо интересно

изпълнението на update-grub наистина прецаква menu.lst. току що тествах.

p.s. какво е stub?


Титла: Re: Проблем със зареждането след кернел ъпдейт, при смяна от ATA към SATA root диск
Публикувано от: n00b в Aug 22, 2010, 01:57
stub е термин означаващ когато една програма всъщност представлява нещо просто и извиква друга програма.

Т.е. както е - update-grub - звучи сложно, но реално представлява горепосочения скрипт и е създаден с цел улеснение.

--------------

А файла /boot/grub/device.map поледна ли?

https://help.ubuntu.com/community/GrubHowto#Changing%20the%20Disk%20that%20Grub%20is%20installed%20to ($2)


Титла: Re: Проблем със зареждането след кернел ъпдейт, при смяна от ATA към SATA root диск
Публикувано от: wfw в Aug 22, 2010, 17:17
да, там си е както трябва:

Код:
(hd0)   /dev/sda

нещо ми убягва, не е в /boot нито в /etc


Титла: Re: Проблем със зареждането след кернел ъпдейт, при смяна от ATA към SATA root диск
Публикувано от: plandz в Aug 22, 2010, 19:06
Grub в Лени трябва да е версия 0.97
Аз съм с 1.98 в тестинг и ми е малко трудно да си спомня как се правеше в стария GRUB.
Виж това,може да ти помогне:

http://jbakshi.50webs.com/Linux_tutorial/GRUB/GNU%20GRUB%20simplified.html
https://help.ubuntu.com/community/GrubHowto

Във втория линк има точно това,което искаш да разбереш как става - промяна от PATA към SATA HDD.
Промени опциите при зареждане на груб и виж дали ще зареди първо.

Успех!


Титла: Re: Проблем със зареждането след кернел ъпдейт, при смяна от ATA към SATA root диск
Публикувано от: wfw в Aug 22, 2010, 20:20
Код:
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/sda1 ro

Мерси на всички за помощта. Проблема дойде от това, че нямам навик да гледам опциите в коментираните редове, но явно е важно. След намирането на kopt стана ясно, че той е важен за update-grub и вече няма проблем. Сега го промених на sda, както е в примера по-горе и всичко работи перфектно.