# [SOLVED] wymuszenie nazw dla dysków twardych

## aklys

Przy ostatniej aktualizacji kernela postanowiłem wyłączyć w końcu CONFIG_IDE (które już jakiś czas jest oznaczone jako deprecated). Komputer, na którym to robiłem, ma dwa dyski twarde (płyta na chipsecie nfroce2 + kontroler sata sis na płycie):

1. dysk ide z systemem (dotychczas widoczny jako /dev/hda)

2. dysk sata na backupy (dotychczas widoczny jako /dev/sda)

System startuje z dysku ide i na nim jest zainstalowany grub. Po rekompilacji kernela trzeba było więc pozmieniać wpisy w grub.conf oraz w /etc/fstab - ponieważ jak się spodziewałem dysk IDE nie będzie już więcej widoczny jako /dev/hda - zostaje tylko pytanie czy będzie to sda czy sdb? Przyjąłem, że będzie to sda i zmieniłem wpis w /boot/grub/grub.conf z

 *Quote:*   

> 
> 
> kernel /boot/kernel-2.6.38-gentoo-r6 root=/dev/hda5 video=vesafb:ywrap,mtrr:3,12
> 
> 

 

na

 *Quote:*   

> 
> 
> kernel /boot/kernel-2.6.38-gentoo-r6 root=/dev/sda5 video=vesafb:ywrap,mtrr:3,12
> 
> 

 

i zmieniłem w /etc/fstab oznaczenia wszystkich partycji /dev/hdaX na /dev/sdaX oraz /dev/sdaX na /dev/sdbX (dla tego dysku SATA).

Zrestartowałem i maszynę i okazało się, że system widzi jednak ten dysk ide jako sdb a nie sda, musiałem więc ratować się bootowaniem z pendrive i zamianą wszystkich sda <-> sdb w /etc/fstab i /boot/grub/grub.conf. Po tej operacji system wystartował i wszystko jest ok, ale nasuwa mi się pytanie, czy ja mogę w jakiś sposób wymusić, żeby jednak to dysk IDE był rozpoznawany jako /dev/sda (a nie dysk SATA)?

Dlaczego to takie istotne? Otóż ten dysk sata to został podpięty jakiś czas temu i być może za jakiś czas zostanie zabrany z tego zestawu, a wtedy (jak podejrzewam, bo nie sprawdzałem tego jeszcze, ale na 99% tak będzie) przy restarcie systemu dysk IDE będzie widoczny jako /dev/sda i znowu trzeba będzie poprawiać pliki konfiguracyjne żeby umożliwić wystartowanie systemu.

Mój problem jest więc następujący: czy mógłbym jakoś poprawić swoją konfigurację tak, aby system startował zarówno z podłączonym tym dodatkowym dyskiem sata jak i bez niego bez konieczności dokonywania żadnych zmian w konfiguracji?

W obecnej sytuacji korekty wymagają dwa pliki: /boot/grub/grub.conf oraz /etc/fstab

Może można spróbować coś z udev (żeby z fstab usunąć wszelkie /dev/sd* i zastąpić je jakimiś odwołaniami do nazw tworzonych przez udev?), ale co z tym wpisem w grub.conf (root=/dev/sdb5)?Last edited by aklys on Wed Jul 20, 2011 9:24 am; edited 1 time in total

----------

## SlashBeast

Napewno mogl bys uzyc uuida zamiast /dev/sdXX badz by-label, nie jestem pewnien, czy do tego nie trzeba initramfs. Np. root=LABEL=rootfs.

A co do ratowania sie pendrivem, mogles w grubie nacisnac 'e', zmienic sda5 na sdb5, jezeli masz system pociety na duzo partycji, bez ktorych sie nie zalogujesz nawet, to dopisac init=/bin/sh, po dostaniu sie do szela wpisal bys 'mount -o remount,rw /', vim /etc/fstab, potem 'mount -o remount,ro' i zrestartowal bys komputer. 

W tym momencie polecam posiadanie busyboksa zbudowanego statycznie, busybox zawiera w sobie duzo toolsow przydatnych przy ratowaniu systemu, nawet wlasnego tara czy gzipa.

----------

## soban_

http://en.gentoo-wiki.com/wiki/USB_Portable_Install tutaj masz dosyc ciekawe rozwiazanie z Label, polecam je - o czym juz wspomnial @SlashBeast

----------

## aklys

Znalazłem mało eleganckie (ale skuteczne) rozwiązanie tego problemu: skoro dysk podłączony do kontrolera SATA ma być widoczny jako "późniejszy", to można przecież skompilować obsługę SATA SIL31x12 jako moduł. W ten sposób dysk podłączony do slotu IDE system widzi jako /dev/sda, a dysk podłączony do kontrolera jako /dev/sdb. W grub.conf jest "root=/dev/sda5", w /etc/fstab potrzebne partycje jako /dev/sdaX i teraz system startuje zarówno z dyskiem podłączonym do kontrolera SATA jak i bez niego bez potrzeby dokonywania żadnych zmian w konfiguracji, a o to mi chodziło.

Skorzystanie z montowania po LABEL (albo UUID) wymaga initramfs, a na tej maszynie nie jest mi to do niczego potrzebne i jakoś nie chciało mi się w to bawić tylko ze względu na ten problem. Zresztą przejście na initramfs + montowanie po UUID rozwiąże problem z /etc/fstab, ale nadal zostanie jeszcze ten wpis root=/dev/sda5 w grub.conf. Czy można się jakoś go pozbyć?

@SlashBeast: wiem, że mogłem jeszcze ratować się na inne sposoby, ale prawie zawsze mam przy sobie pendrive'a z sysresccd (polecam wszystkim), który już wiele razy okazał się bardzo przydatny. Także tym razem pozwolił błyskawicznie naprawić sytuację.

----------

## SlashBeast

 *aklys wrote:*   

> Skorzystanie z montowania po LABEL (albo UUID) wymaga initramfs, a na tej maszynie nie jest mi to do niczego potrzebne i jakoś nie chciało mi się w to bawić tylko ze względu na ten problem. Zresztą przejście na initramfs + montowanie po UUID rozwiąże problem z /etc/fstab, ale nadal zostanie jeszcze ten wpis root=/dev/sda5 w grub.conf. Czy można się jakoś go pozbyć?

 

Bzdury wygadujesz, przejscie na initramfs i montowanie po UUID nie ma nic do fstaba, mozesz sobie do grub.conf zamiast root=/dev/sda5 dac root=UUID=b3b931d2-efda-4c9b-8f21-4ab2191c427d (przykladowy uuid). Do uuidow w fstabie nie potrzeba initramfs.

----------

