O dispositivo de disco muda após cada reinicialização

3

Eu tenho um disco SATA e um disco IDE em minha máquina desktop e instalei o Windows 7 no disco SATA enquanto o ArchLinux está no IDE, o grub está instalado no disco IDE.

No ArchLinux / etc / fstab eu configurei o dispositivo de montagem raiz como / dev / sda2 ao invés de / dev / sdb2, como detectado no programa de instalação do ArchLinux.

No entanto, toda vez que eu inicializo do grub no ArchLinux, haverá chances de que o initrd não possa ler de / dev / sda2, já que parece que / dev / sda é o disco do Windows 7 em vez do ArchLinux. Mas às vezes funciona, pois o / dev / sda se torna o ArchLinux. Em outras palavras, se o disco ArchLinux é / dev / sda ou / dev / sdb difere após a reinicialização.

Gostaria de saber se é útil usar o UUID para escolher a partição em vez do caminho do dispositivo. E existe alguma outra solução para este problema?

    
por ZelluX 16.11.2009 / 09:36

3 respostas

2

O uso do UUID é sempre a melhor opção. Mas dito isto, o seu problema vem de você, uDev. Alguns controladores Sata mais antigos demoram um pouco para girar e, nesse momento, o udev já encontrou a unidade IDE e a usou como a primeira unidade. Embora eu acredite que isso seja apenas do Cold-Boot.

Quando eu trabalhei com o Coreboot eu encontrei este problema frequentemente e a única solução real que eu encontrei foi a pausa do sistema por alguns segundos (My 1TB consumiu os 20secs) para permitir que as unidades girassem.

Espero que ajude de alguma forma!

    
por 16.11.2009 / 10:15
1

Como afirma a resposta de Crankyadmin, é preferível identificar uma partição pelo UUID do que usar caminhos de dispositivo.

Outra alternativa é identificar pelo rótulo da partição. Eu prefiro isso ao UUID porque ele é muito mais legível, mas você precisa garantir que suas partições usem rótulos exclusivos, e alguns caracteres que são legais em rótulos de partições podem ser problemáticos para esse uso (em particular, espaços podem não funcionar bem).

Você pode adicionar rótulos às suas partições ext (2,3,4) com tune2fs -L <new-label> <device> ou no formato usando a opção -L <new-label> com mkfs.ext(2,3) . Use rótulos como os UUIDs em /etc/fstab e /boot/grub/menu.lst :

# fstab w/ UUID
UUID=3a9a1209-47de-4959-8ba6-9724e4c3eb37  /     ext3    defaults,errors=remount-ro 0 1

# fstab w/ label
LABEL=arch-root      /     ext3    defaults,errors=remount-ro 0 1


# GRUB config w/ UUID
kernel          /boot/vmlinuz-2.6.20-15-generic root=UUID=3a9a1209-47de-4959-8ba6-9724e4c3eb37 ro quiet splash

# GRUB config w/ label
kernel          /boot/vmlinuz-2.6.20-15-generic root=LABEL=arch-root ro quiet splash
    
por 16.11.2009 / 17:52
0

Concordo com os comentários anteriores sobre o uso de UUIDs em vez de / dev / sdX em suas configurações (como em / etc / fstab). Embora essa seja uma pergunta antiga, pensei em compartilhar esta página que encontrei ao lidar com um problema semelhante hoje em dia . Parece ser uma boa referência para como usar UUIDs (ou rótulos, se você preferir).

    
por 25.01.2013 / 21:59