boot issues - longo atraso, então “desistiu de esperar pelo root device”

3

Eu tenho esse problema ligado e desligado há cerca de dois anos. Eu notei isso em uma nova máquina (customizada) rodando 10.04 quando a primeira saiu, mas depois foi embora até alguns meses atrás. Eu passei por várias alterações no disco rígido, mas não posso dizer especificamente o que, se alguma coisa eu mudar de hardware para fazê-lo parar ou começar a acontecer. Eu tinha assumido que atualizar para uma versão moderna do Ubuntu resolveria o problema, então eu instalei o 12.04 beta em uma partição de reposição na noite passada, mas ainda está acontecendo.

Aqui está o problema. Depois que o grub é carregado e eu seleciono um kernel para inicializar, a tela fica em branco, exceto por um cursor piscante. Ele fica nesse estado por muitos longos minutos antes de finalmente desistir e me dá um shell initramfs com a mensagem gave up waiting for root device (e lista o caminho /dev/disk/by-uuid/... que estava esperando), mas nenhuma outra informação diagnóstica específica.

Agora, aqui está a parte complicada. Por um lado, o problema é intermitente - às vezes ele progride do cursor piscando para a tela de inicialização inicial do Ubuntu em poucos segundos, e uma vez que chega tão longe, sempre continua a inicialização bem. O mais bizarro é que eu posso forçá-lo a "encontrar" o dispositivo raiz pressionando repetidamente a barra de espaço e apertando o botão liga / desliga da máquina. Se eu tocar naqueles o suficiente, eventualmente, vou notar a luz do disco rígido chegando, ponto em que ele sempre continuará o processo de inicialização depois de alguns segundos. Curiosamente, se eu esperar um pouco demais antes de pressionar o botão liga / desliga (30s?), Assim que pressioná-lo, recebo a mensagem de espera desistida e o shell initramfs.

Eu tentei configurar o /etc/fstab (e o grub menu.lst ou o nome atual) para usar nomes de dispositivos (por exemplo, /dev/sda1 ) em vez de UUIDs, mas obtenho o mesmo efeito apenas com o nome do dispositivo , não UUID, na mensagem de erro.

Também devo mencionar que, quando inicializo o Windows 7, não há problema. Ele inicializa lentamente todo o tempo apenas por ser o Windows, mas nunca é interrompido indefinidamente. Isso parece indicar que é um problema no Ubuntu, não no hardware.

É muito chato ter que cuidar do computador toda vez que ele inicializa. Alguma ideia? Estou em uma perda. Nem tenho certeza de como diagnosticar o problema. Obrigado!

EDITAR:

Aqui está uma saída do dmesg de 10.04. A diferença de 15 segundos é onde ela não estava fazendo nada. Eu apertei o botão liga / desliga e barra de espaço algumas vezes, e o material aos 16 segundos aconteceu. Não tenho certeza do que isso significa.

[    1.320250] scsi18 : ahci
[    1.320294] scsi19 : ahci
[    1.320320] ata19: SATA max UDMA/133 abar m8192@0xfd4fe000 port 0xfd4fe100 ir
q 18
[    1.320323] ata20: SATA max UDMA/133 abar m8192@0xfd4fe000 port 0xfd4fe180 ir
q 18
[    1.403886] usb 2-4: new high speed USB device using ehci_hcd and address 4
[    1.562558] usb 2-4: configuration #1 chosen from 1 choice
[   16.477824] ata16: SATA link down (SStatus 0 SControl 300)
[   16.477843] ata19: SATA link down (SStatus 0 SControl 300)
[   16.477857] ata3: SATA link down (SStatus 0 SControl 300)
[   16.477895] ata15: SATA link down (SStatus 0 SControl 300)
[   16.477906] ata20: SATA link down (SStatus 0 SControl 300)
[   16.477977] ata17: SATA link down (SStatus 0 SControl 300)
[   16.478003] ata12: SATA link down (SStatus 0 SControl 300)
[   16.478046] ata13: SATA link down (SStatus 0 SControl 300)
[   16.478063] ata14: SATA link down (SStatus 0 SControl 300)
[   16.478108] ata11: SATA link down (SStatus 0 SControl 300)
[   16.478123] ata18: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[   16.478127] ata6: SATA link down (SStatus 0 SControl 300)
[   16.478157] ata5: SATA link down (SStatus 0 SControl 300)
[   16.478193] ata18.00: ATAPI: MARVELL VIRTUALL, 1.09, max UDMA/66

Depois disso, demorou o seu tempo doce, e eu tive que continuar batendo barra de espaço para persuadi-lo junto. Aqui está um pouco mais de saída do dmesg de um pouco mais tarde no processo de inicialização:

[   17.982291] input: BTC USB Multimedia Keyboard as /devices/pci0000:00/0000:00
:13.0/usb5/5-2/5-2:1.0/input/input4
[   17.982335] generic-usb 0003:046E:5506.0002: input,hidraw1: USB HID v1.10 Key
board [BTC USB Multimedia Keyboard] on usb-0000:00:13.0-2/input0
[   18.005211] input: BTC USB Multimedia Keyboard as /devices/pci0000:00/0000:00
:13.0/usb5/5-2/5-2:1.1/input/input5
[   18.005274] generic-usb 0003:046E:5506.0003: input,hiddev96,hidraw2: USB HID 
v1.10 Device [BTC USB Multimedia Keyboard] on usb-0000:00:13.0-2/input1
[   22.484906] EXT4-fs (sda6): INFO: recovery required on readonly filesystem
[   22.484910] EXT4-fs (sda6): write access will be enabled during recovery
[   22.548542] EXT4-fs (sda6): recovery complete
[   22.549074] EXT4-fs (sda6): mounted filesystem with ordered data mode
[   32.516772] Adding 20482832k swap on /dev/sda5.  Priority:-1 extents:1 across:20482832k 
[   32.742540] udev: starting version 151
[   33.002004] Bluetooth: Atheros AR30xx firmware driver ver 1.0
[   33.008135] parport_pc 00:09: reported by Plug and Play ACPI
[   33.008186] parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE]
[   33.012076] lp: driver loaded but no devices found
[   33.037271] ppdev: user-space parallel port driver
[   33.090256] lp0: using parport0 (interrupt-driven).

Alguma pista aí?

EDITAR:

Algumas capturas de tela da saída dmesg do shell busybox initramfs quando ele falha:

Eu tentei sugestão do fossfreedom de tentar um número de opções de inicialização. Até agora, parece que irqpoll está realmente funcionando! Já inicializei quatro vezes com sucesso até agora.

(Como observação, não consigo colocar irqpoll - editei /etc/default/grub para adicioná-lo a GRUB_CMDLINE_LINUX_DEFAULT e executei update-grub , mas ainda nada. O que sou faltando?) (Meu grub foi lavado de alguma forma ao instalar o outro ubuntus. Eu consertei e estou vendo irqpoll sempre agora.)

Dado que, qual é o problema aqui? Parece que irqpoll é um hack para obter BIOSes que de alguma forma não aderem a algum padrão de IRQ para trabalhar com o Linux. Como eu decifro qual componente é o problema, e existe outra solução para fazer com que o Linux seja legal com ele, o que não envolve o que parece ser uma sobrecarga?

    
por chazomaticus 02.03.2012 / 21:37

2 respostas

2

Suas últimas mensagens dmesg parecem interessantes.

Eu já vi problemas semelhantes em espaço de imprensa durante a inicialização em um laptop que possuía.

A solução que encontrei foi adicionar ao grub o parâmetro de inicialização noapic ou nolapic grub.

Há um número de opções de inicialização do grub que você pode tentar de acordo com o wiki da comunidade:

link

Assim, se as opções padrão de inicialização do grub como noapic ou acpi=off não funcionarem para você, algumas das outras opções comuns podem funcionar para você.

Ao testar a opção de inicialização do grub, você pode usar minha resposta aqui para adicionar temporariamente as opções do kernel no momento da inicialização.

Como faço para definir 'nomodeset' depois de já ter instalado o Ubuntu?

irqpoll :

from the wiki: Changes the way the kernel handles interrupt calls (set it to polling). Can be useful in case of hardware interrupt issues.

  irqpoll         [HW]
                        When an interrupt is not handled search all handlers
                        for it. Also check all handlers each timer
                        interrupt. Intended to get systems with badly broken
                        firmware running

source

Assim - e como você tem um computador personalizado - é muito provável que seja um ou mais componentes que compõem o seu computador. Descobrir qual exigirá um pouco de trabalho de detetive.

A maneira mais fácil seria apenas simplificar o seu computador para o básico - use um teclado fixo, mouse simples, gráficos onboard, ethernet onboard e nada mais. por exemplo, retire todos os componentes PCI / USB que você está usando. Em seguida, adicione cada um de volta em um de cada vez.

Se você achar que ainda precisa de irqpoll em uma compilação simplificada, será necessário observar mais de perto sua placa-mãe. Olhe para o site do fabricante e veja se há alguma atualização de firmware - provavelmente você precisará dos-boot para fazer o flash.

    
por fossfreedom 24.03.2012 / 00:30
0

Está tentando montar um dispositivo. Se "durante a inicialização / durante a ação do GRUB" você pressionar "s", isso ignorará o processo de montagem e nenhum erro será exibido. Você precisará editar o arquivo fstab que referencia o número UUID. Exemplo:

sudo gedit /etc/fstab
UUID=sda2

REMOVA A LINHA COMPLETAMENTE. Salvar e fechar. Então reinicie.

    
por Ringtail 02.03.2012 / 22:01