Inicialize os dispositivos USB antes dos discos rígidos durante a inicialização do grub2

1

Eu tenho uma instalação do CentOS em um pendrive portátil, com uma instalação do grub2 em sua primeira partição. O sistema pode inicializar quando não há discos rígidos internos conectados a uma máquina, mas falha se qualquer disco rígido estiver conectado.

Eu quero que meu sistema operacional, rodando o pendrive, seja montado como / dev / sda, e qualquer outro disco rígido interno seja rotulado de / dev / sdb. Eu estou usando rótulos de partições para mapear meus / boot, / root, / home e / swap. Parece que a unidade interna aparece como sda, então eu me deparo com um kernel panic na inicialização.

lsblk -f
NAME    FSTYPE  LABEL
sda
|___sda1
sdb
|___sdb1 hfsplus DISK_1
|___sdb2 ext4    USB_root
|___sdb3 ext4    USB_home
|___sdb4 swap    USB_swap 

Eu tenho regras do udev para unidades internas serem numeradas de / sdb em diante, mas parece que essas regras são aplicadas mais tarde na seqüência de inicialização, portanto o disco interno que deve ser sdb é inicializado como sda.

Meu /boot/grub.conf é o seguinte:

default=0
timeout=5
chainloader +1
#splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (3.10.65-1.el6.elrepo.x86_64)
    #root (hd0,0)
    search --set --label USB_boot   
    kernel /vmlinuz-3.10.65-1.el6.elrepo.x86_64 ro root=LABEL=USB_root nomodeset rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=uk LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rootdelay=8
    initrd /usbinitrd-3.10.65-1.el6.elrepo.x86_64.img

Meu usbinitrd foi criado seguindo as instruções em aqui

  • É possível inicializar uma unidade USB externa como sda antes de qualquer unidade interna?
  • Devo apenas mapear meu dispositivo USB e fazer o grub de configuração para algo como / sdu para que não entre em conflito com a nomenclatura interna da unidade?
por sg90 30.01.2015 / 17:25

1 resposta

0

Este parece ter sido um problema de temporização ao inicializar - o rootdelay = 8 nas opções do kernel no meu grub.conf foi alterado para rootdelay = 10, e tudo está funcionando como esperado. Parece que a máquina não havia descoberto todas as partições no dispositivo USB no momento em que começou a inicialização.

Eu criei outra regra do udev para mapear meu pendrive para / dev / sdu usando o rótulo MANUFACTURER encontrado pelo udevadm e tudo está bem.

    
por 03.02.2015 / 11:53