# Avviare Gentoo da Usb

## Karhot87

Salve a tutti. Devo installare gentoo su un pc che non ha il cdrom, ho seguito questa guida x partire da usb: http://www.gentoo.org/doc/it/liveusb.xml

Tutto bene fino in fondo, quando vado a effettuare il boot da usb però mi dice: Could not find kernel image. Dove sbaglio? 

Grazie a tuttiLast edited by Karhot87 on Sun Jun 22, 2008 10:12 am; edited 2 times in total

----------

## cloc3

non è facile rispondere, perché le cause possono essere molte.

l'errore è generato dal tuo bootloader (syslinux, credo) che non trova il kernel.

può essere che tu abbia configurato male syslinux, istruendolo a non cercare il kernel nel posto giusto.

può essere che il kernel non ci sia.

può essere che la bios della scheda madre sia male impostata o mal funzionante (talora bisogna aggiornare le bios) e trasmetta informazioni scorrette al bootloader.

prova a vedere se, tra queste cause, ne trovi una che faccia al caso tuo, e ritorna magari con nuove informazioni.

----------

## fbcyborg

Ciao a tutti, 

anche io ho un problema a far partire una Gentoo installata su un disco esterno USB.

Ho creato il file initrd, ho creato anche la directory /initrd, ma l'errore che ottengo è:

```
mount: error 6 mounting ext3

pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2

umount /initrd/proc failed: 2

Freeing unused kernel memory: 216k freed

Kernel panic - not syncing: No init found. Try passing init= option to kernel
```

Non so, magari ho sbagliato il grub.conf, magari il disco usb viene visto come /dev/sdb invece che come /dev/sda ... ma non capisco.

Oltretutto non funziona nemmeno ALT-STAMP-B.

Il mio grub.conf è il seguente:

```
title=Gentoo Linux (USB) Linux 2.6.24-r8

root (hd1,0)

kernel /kernel-2.6.24-gentoo-r8 root=/dev/sda3 video=vesafb:ywrap,mtrr:3,1024x768-32@60 acpi_sleep=s3_bios pci=assign-busses

initrd (hd1,0)/initrd-2.6.24-gentoo-r8
```

C'è un howto ufficiale "o quasi" che spieghi come installare la Gentoo su USB esterno?

----------

## Tigerwalk

potrebbe essere un problema di initrd. Io ho installato gentoo su usb (/dev/sdb4), utilizzo l'initrd generato con genkernel, di seguito il mio menu-lst:

```
title      Gentoo 2.6.24-gentoo-r4 (on /dev/sdb4)

root      (hd1,1)

kernel      /kernel-genkernel-x86-2.6.24-gentoo-r4 root=/dev/ram0 ramdisk=8192 real_root=LABEL=GENTOO quiet init=/linuxrc vga=791 CONSOLE=/dev/tty1 pci=nomsi 

initrd      /initramfs-genkernel-x86-2.6.24-gentoo-r4

savedefault

boot
```

Funziona bene!

----------

## fbcyborg

Non riesco a capire.. Non funziona!

Considera che io il file initrd me lo faccio con mkinitrd (ancora mi chiedo come mai non sia presente mkinitramfs nel portage).

Ho provato a impostare il grub.conf secondo quanto mi hai detto, ma ora ottengo dei messaggi in più rispetto a prima:

```
Creating block devices

failed to create /dev/sda

failed to create /dev/sda1

failed to create /dev/sda2

failed to create /dev/sda5

failed to create /dev/sda6

failed to create /dev/sda7

failed to create /dev/sda8

Creating root device

mkrootdev: mknod failed: 30

Mounting root filesystem

mount: error 6 mounting ext3

pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2

umount /initrd/proc failed: 2

Freeing unused kernel memory: 216k freed

Kernel panic - not syncing: Attempted to kill init!
```

(Ho un'altra Gentoo installata sul disco interno, in /dev/sda ma non capisco come possa andare a leggersi le sue partizioni)

----------

## Tigerwalk

Il consiglio che posso darti è di provare a ricompilare con genkernel ed utilizzare il suo initrd, in modo da vedere se il problema è quello (ma dai messaggi, direi proprio di si).

----------

## fbcyborg

La cosa strana è che proprio nemmeno un paio di mesi fa ho fatto le stesse cose con una debian e ho avuto meno problemi.. compilazione del kernel sempre manuale.

Se ci fai caso però, quando dice "failed to create /dev/sda*" è come se stesse cercando di montare le partizioni che sono sul disco interno. Non capisco perché debba andare a cercarsele, visto che la root è un'altra.

----------

## Tigerwalk

 *fbcyborg wrote:*   

> La cosa strana è che proprio nemmeno un paio di mesi fa ho fatto le stesse cose con una debian e ho avuto meno problemi.. compilazione del kernel sempre manuale.
> 
> Se ci fai caso però, quando dice "failed to create /dev/sda*" è come se stesse cercando di montare le partizioni che sono sul disco interno. Non capisco perché debba andare a cercarsele, visto che la root è un'altra.

 

Infatti, è come se non riuscisse a creare i node per i /dev/sda, è per questo che sospetto un problema di moduli inseriti nell'initrd.

----------

## fbcyborg

Ok, allora mi sorgono alcune questioni, fra cui:

1) per caso mkinitrd non funziona bene? Su Debian utilizzai mkinitramfs, in quanto mkinitrd era deprecato.

2) forse è possibile (e mi pare proprio che si possa fare) dire esplicitamente quali moduli inserire nell'initrd tramite alcuni parametri da passare a mkinitrd

3) il fatto che tenti di montare /dev/sda* con i numeri che ho riportato non è segno positivo: il mio disco usb esterno ha solo /dev/sdb{1|2|3}. Cosa gliene frega di andare a montare cose che non gli competono? 

Scusami ma non vorrei utilizzare genkernel, visto che da sempre compilo manualmente e ad ogni modo deve funzionare lo stesso! Con o senza genkernel.

Grazie per il supporto.

----------

## Tigerwalk

Prego, ti consiglio di guardare questo articolo per creare un initrd inserendo dentro il necessario per avviare il S.O.. Io l'ho provato con slackware e funziona perfettamente. Magari puoi trarre spunto da lì.   :Wink: 

----------

## djinnZ

io uso l'immagine standard di genkernel usando real_root=/dev/disk/... e funziona.

----------

## fbcyborg

Quindi non c'è modo di farlo con la compilazione manuale!?

non ci credo!   :Embarassed: 

----------

## cloc3

 *fbcyborg wrote:*   

> Quindi non c'è modo di farlo con la compilazione manuale!?
> 
> 

 

perché no?

in prima approssimazione, basterebbe compilare i moduli per l'usb builtin nel kernel e aggiungere un ritardo nella linea di boot.

però a volte sorgono problemi di comunicazione tra la bios (magari impostata male, non aggiornata o diffettosa) e il kernel, simili a quelli che stai trovando. dai un occhio qui, che spesso i guasti nascono da conflitti di denominazione dei dischi.

in quei casi torna utile generare una initramfs, come quella di genkernel o un prodotto personalizzato.

tempo fa, avevo prodotto delle elucubrazioni mentali sul tema, adattabili al caso dell'usb e comprensive di uno script automatico per produrre le initramfs.

non è professionale come quello di Tigerwalk, ma contiene dei commenti esplicativi in più.

vedi se ti può dare qualche idea.

----------

## fbcyborg

Grazie.

Ho dato un'occhiata ai link che mi hai suggerito, solo che credo che la mia situazione sia forse un po' più semplice.

In realtà non penso sia un problema di fstab (il disco USB al massimo può essere rilevato come /dev/sda o /dev/sdb, e ho provato a impostarli entrambi), e i moduli per l'USB erano già compilati come built-in.

La cosa strana che non mi torna è che comunque sembra che in qualche modo vada a leggere la tabella delle partizioni del disco interno.

----------

## cloc3

 *fbcyborg wrote:*   

> 
> 
> La cosa strana che non mi torna è che comunque sembra che in qualche modo vada a leggere la tabella delle partizioni del disco interno.

 

alla peggio, staccalo e stai a vedere.

----------

## fbcyborg

mmh.. Non vorrei smontare il portatile...

----------

## cloc3

 *fbcyborg wrote:*   

> mmh.. Non vorrei smontare il portatile...

 

ah, bè.

togliere il disco, nei portatili, è molto più semplice.

----------

## k01

di solito c'è uno sportellino dietro per hdd e ram, basta svitare un paio di viti, non c'è bisogno di aprirlo completamente, e la garanzia (se è questo che ti preoccupa) permane

----------

## fbcyborg

Sì lo so che è facile. So anche come si fa, solo che vorrei evitare di farlo, tutto quì.

----------

## cloc3

 *fbcyborg wrote:*   

> solo che vorrei evitare di farlo, tutto quì.

 

ok. ma sei tu che devi dare un senso compiuto a quella affermazione, che ti va a leggere la tabella delle partizioni sbagliata.

da cosa deduci che accada proprio questo?

chi lo fa? grub, la bios, l'SO?

se grub, il grub del disco rigido o quello della chiavetta? hai provato a usare bootloader diversi, tipo lilo di qua e grub di là?

cosa succede provando a usare le uuid per definire le partizioni?

----------

## fbcyborg

 *cloc3 wrote:*   

>  *fbcyborg wrote:*   solo che vorrei evitare di farlo, tutto quì. 
> 
> ok. ma sei tu che devi dare un senso compiuto a quella affermazione, che ti va a leggere la tabella delle partizioni sbagliata.
> 
> da cosa deduci che accada proprio questo?

 Lo deduco da quanto riportato quì *cloc3 wrote:*   

> 
> 
> chi lo fa? grub, la bios, l'SO?
> 
> se grub, il grub del disco rigido o quello della chiavetta? hai provato a usare bootloader diversi, tipo lilo di qua e grub di là?
> ...

 

Comunque mi sono deciso a provare con genkernel.. mi avete convinto. Provo e vi faccio sapere.

----------

## fbcyborg

Ho utilizzato genkernel solo per creare l'initrd e tutto è andato perfettamente.

Comando utilizzato:

```
genkernel initrd --slowusb
```

Ora si avvia che è una meraviglia.

Per fortuna non ho dovuto smontare tutto!

PS: grazie maurs per il suggerimento in pvt.

----------

## Tigerwalk

 *fbcyborg wrote:*   

> Ho utilizzato genkernel solo per creare l'initrd e tutto è andato perfettamente.
> 
> Comando utilizzato:
> 
> ```
> ...

 

Finalmente  :Laughing: 

----------

