Sie sind nicht angemeldet.

1

03.01.2011, 19:40

Virtio lässt sich als Rootdevice beim Booten nicht einhängen!

Hallo Leute

Habe ein virtuelles Gentoo auf KVM laufen. Virtion ist im Kernel, und es funktioniert bei Festplatten auch wenn man eine Zusätzliche im laufendem Betrieb ranhängt. Nur wenn ich die Rootfestplatte als Virtio deklariere, bootet zwar der Kernel, aber nur bis zum Einhängen von "/". Fehlermeldung:

Quellcode

1
2
3
Blockdevice /dev/vda1 is not a valid root device...
Could not find the root block device in.
Please specify another value or. press ENTER for the same.


Was muss sein damit das Teil richtig gemountet wird? VDA1 stimmt, sonst würde ja der Kernel nicht booten. Und das steht auch in der FSTAB.

lg
boospy
Gentoo Can Do!

Wiki auf: http://deepdoc.at

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »boospy« (24.06.2011, 22:56)


2

03.01.2011, 19:53

Du nutzt eine initramfs oder? Wenn ja wird diese wahrscheinlich kein /dev/vda1 haben. Du musst also die initramfs entpacken, die Devices mit mkdev anlegen und wieder packen.
An sonsten, hast Du alles aus http://www.linux-kvm.org/page/Boot_from_virtio_block_device beachtet?
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

3

03.01.2011, 20:27

So, jetzt steh ich auf der Leitung. Wieso muss ich das machen? Ja, du hast schon Recht auf der KVMseite stehts auch so. Aber egal was für eine Distri ich bis jetzt mit Virtio eingesetzt habe, das musste ich noch nie machen. Aber egal. Ich habe diese Seite entdeckt: http://en.gentoo-wiki.com/wiki/Initramfs Wie geht das jetzt weiter? Wo ist die initramfs. So wie ich das sehen existiert sie nur in /boot . Was muss ich denn jetzt machen? Virtiomodule sind ja nach dem Systemstart alle geladen.

lg
boospy
Gentoo Can Do!

Wiki auf: http://deepdoc.at

4

03.01.2011, 21:03

Kurz und knapp hat es hier jemand gepostet: http://www.unix.com/302268252-post2.html
Virtiomodule sind ja nach dem Systemstart alle geladen.
Die Virtio-Module sind fest im Kernel oder in der initramfs enhalten?
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

5

09.01.2011, 19:54

Alle Module fest im Kernel.

Ok, also ich hab jetzt mal die initramfs entpackt und in DEV nachgesehen. Da ist nicht viel vorhanden:

Quellcode

1
console  null  tty1

Wie gehts jetzt weiter?

lg
boospy
Gentoo Can Do!

Wiki auf: http://deepdoc.at

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »boospy« (09.01.2011, 20:14)


6

10.01.2011, 18:59

So, hab vda1 mit mknod in der initramfs erstellt wieder zusammengeaut und rebootet. Leider fährt der Rechner jetzt überhaupt nicht mehr hoch. Manno, das kann doch nicht so schwer sein... hat den niemand sein Gentoo mit Virtio am laufen?

lg
boospy
Gentoo Can Do!

Wiki auf: http://deepdoc.at

7

11.01.2011, 22:13

Zitat

hat den niemand sein Gentoo mit Virtio am laufen?

Hier, huhu, :wink:

compile es doch einfach fest in kernel ein statt als modul, das funktioniert bestens, block-virtio kennt genkernel noch nicht.
falls du sample brauchst >>

Quellcode

1
kvm -drive file=root.qcow2,media=disk,if=virtio,boot=on


Edit:
Ok verlesen gehabt, sind schon alle eingelöted. Versuch mal trotzdem obrigen befehl.

8

24.06.2011, 20:11

Hi, Leute

Also das Problem bin ich heute wieder angegangen. Ich bin jetzt soweit das wenigstens die Netzwerkarte mit Virtio läuft und die Festplatte als SCSI (sda) angsprochen wird. Das ist schon eine sehr große Verbesserung. Das dem vda tut leider "noch" nicht. Also so wie es aussieht kann man virtio gar nicht fest im Kernel einkompilieren. Ich weis nicht mehr was ich früher gemeint habe. Wahrscheinlich war es das falsche Modul. Für Festplatten wäre das richtig:

Device Drivers --> Block devices --> Virtio block driver

Das geht aber nur als Modul. Ich wie jetzt nochmal getestet habe: Hab ich ne zweite Platte als vda an der VM hängen kann ich diese auch mounten, als Virtioblockdevice. So wie schon bell das vorhin erklärte muss wohl das vda1 als Blockdive in der initramfs drinne sein. Das mit den entpacken, Blockdevice erstellen und wieder packen hab ich absolut nicht kapiert. Ich denke mir das muss doch einfacher gehen! Hab vor ein paar Wochen nen PHY Server mit nem Raid aufgesetzt. Hierbei muss man beim Kernel kompilieren das benötigte Modul angeben damit es in der Initramfs liegt, das sah dann so aus:

Quellcode

1
genkernel --dmraid --bootloader=grub --oldconfig --menuconfig all

Also wenn man jetzt das --dmraid mit sowas wie --virtio ersetzen kann.... ? In der Manpage steht was für SCSI

Quellcode

1
doscsi Activate  SCSI  devices  on  bootup, necessary when SCSI support is compiled as modules and you're using SCSI or SATA devices.

Leider hab ich für virtio nichts gefunden.

Nachtrag: Hab grad nochwas gefunden. Zitat:

Zitat

genkernel can be configured to include the virtio modules in the initramfs by
appending the following line to your /etc/genkernel.conf:

MODULES_KVM="virtio virtio_balloon virtio_ring virtio_pci virtio_blk
virtio_net"

You can then load the block driver on boot by appending the following to your
kernel boot options:

doload=virtio_pci,virtio_blk

Quelle: https://bugs.gentoo.org/show_bug.cgi?id=267383

Nachtrag2: Hat leider nicht funktioniert, noch immer mag er root nicht als vda1 einbinden. Kopfkratz. Ich hab alle virtiomodule als Modul kompiliert. Den Kernelparameter am Ende der Kernelzeile angehängt. Und die Option in /etc/genkernel.conf eingetragen...

lg
boospy
Gentoo Can Do!

Wiki auf: http://deepdoc.at

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »boospy« (24.06.2011, 21:23)


9

24.06.2011, 22:55

Juhuuuuuuuuuuu!!! :thumbsup: :thumbup: :)

Hat endlich funktioniert. Ich musste mit den obigen Einstellungen nur mehr den Kernel neu kompilieren. Das wars dann auch schon. Boa eh, war ja echt ne schwere Geburt.

lg
boospy
Gentoo Can Do!

Wiki auf: http://deepdoc.at