Forum: PC Hard- und Software Linux/VirtualBox: VM von SATA Platte booten


von Uhu U. (uhu)


Lesenswert?

Ich würde gerne auf dem Mint-19 System das alte Mint-17 in einer 
VirtualBox VM laufen lassen.

Ich habe also eine VM Mint-17 ohne Platte erzeugt und zusätzlich mit
1
sudo VBoxManage internalcommands createrawvmdk -filename "</path/to/file>.vmdk" -rawdisk /dev/sdb1
ein virtuelles Medium mit der Mint-17 Platte erzeugt.

Das Problem sind die Zugriffsrechte auf die Platte: /dev/sdb1 gehört 
root und vboxusers hat keinen Zugriff – deswegen das sudo VBoxManage … 
ohne kann man die vmdk-Datei nicht anlegen.

Nun gehört die vmdk root und damit kann sie der VM nicht zugewiesen 
werden.

Den Owner der vmdk auf den aktuellen User umsetzen, bringt auch nichts, 
denn vbox hat dann immer noch keinen Zugriff auf /dev/sdb1.

Was muss man tun, damit
- die Platte der VM zugewiesen werden kann und
- das Host-System daran gehindert wird, diese Platte zu mounten?

von John Doe (Gast)


Lesenswert?

Die Rechte vergibst Du über udev.
Beispiele hierfür z.B. unter:
https://wiki.ubuntuusers.de/Dualboot-Windows_virtualisieren/

von bingo (Gast)


Lesenswert?

Die Platten gehören auch zur Gruppe disk, füge einfach den User der 
Gruppe disk hinzu.

von Uhu U. (uhu)


Lesenswert?

bingo schrieb:
> Die Platten gehören auch zur Gruppe disk, füge einfach den User der
> Gruppe disk hinzu.

Das ist gefährlich, denn jedes Programm kann dann auf der Platte 
rumschreiben. Schätze, das kommt ihrer Integrität nicht gerade zugute…

Ich habe mal etwas mit udev herumexperimentiert. Die Regel hat Prio 50:
1
SUBSYSTEM=="block", ATTR{ID_SERIAL_SHORT}=="WD-WCC3F56xxxxx",\ MODE="0060",OWNER="vboxusers",GROUP="vboxusers",SYMLINK+="mint-17"
Hat aber leider nicht funktioniert: wenn ich die Platte einlege, ist sie 
zwar als /dev/sdb zu sehen, aber ein Link mint-17 wird nicht angelegt.

: Bearbeitet durch User
von diepoetteringdie (Gast)


Lesenswert?

In der guten alten Zeit, haette man einfach mit mknod ein
passendes Device angelegt und vboxownerbla als Besitzer
eingetragen.

von Georg (Gast)


Lesenswert?

Uhu U. schrieb:
> Ich habe also eine VM Mint-17 ohne Platte erzeugt

Und warum gehst du nicht den normalen Weg und installierst dein BS in 
einer neuen, leeren VM?

Georg

von Rolf M. (rmagnus)


Lesenswert?

Uhu U. schrieb:
> Was muss man tun, damit
> - die Platte der VM zugewiesen werden kann und
> - das Host-System daran gehindert wird, diese Platte zu mounten?

Das mounten verhindert man, indem man die Platte einfach nicht in die 
/etc/fstab einträgt.

Uhu U. schrieb:
> bingo schrieb:
>> Die Platten gehören auch zur Gruppe disk, füge einfach den User der
>> Gruppe disk hinzu.
>
> Das ist gefährlich, denn jedes Programm kann dann auf der Platte
> rumschreiben.

Und nicht nur auf der, sondern auf allen Platten.

Uhu U. schrieb:
> Ich habe mal etwas mit udev herumexperimentiert. Die Regel hat Prio
> 50:SUBSYSTEM=="block", ATTR{ID_SERIAL_SHORT}=="WD-WCC3F56xxxxx",\
> MODE="0060",OWNER="vboxusers",GROUP="vboxusers",SYMLINK+="mint-17"

Gibt es einen Benutzer "vboxusers" überhaupt? Bei mir existiert der 
nicht.

> Hat aber leider nicht funktioniert: wenn ich die Platte einlege,

Was meinst du damit? Ist die nicht fest angeschlossen?

diepoetteringdie schrieb:
> In der guten alten Zeit

Da musste man dafür aber auch jeden Mist von Hand per mknod anlegen, und 
in /dev lagen tonnenweise devices rum, die es gar nicht gab. Außerdem 
waren dadurch die Zuordnungen zwischen Treibern und major-Inode-Nummern 
fix, weshalb man tunlichst darauf achten musste, dass ein Treiber nicht 
eine schon von einem anderen Treiber belegte Nummer nutzt.

Georg schrieb:
> Und warum gehst du nicht den normalen Weg und installierst dein BS in
> einer neuen, leeren VM?

Was wäre denn der normale Weg, in VirtualBox ein bereits bestehendes 
System so zu "installieren", dass es direkt von der Festplatte gebootet 
wird?

von John Doe (Gast)


Lesenswert?

Uhu U. schrieb:
> Hat aber leider nicht funktioniert: wenn ich die Platte einlege, ist sie
> zwar als /dev/sdb zu sehen, aber ein Link mint-17 wird nicht angelegt.

Was meinst Du denn mit einlegen? Ist das eine USB-Platte?

Mit USB-Platte geht es so:
1
KERNEL=="sd*", SUBSYSTEMS=="usb", ATTRS{serial}=="1122334455667788", MODE="0060", OWNER="n00b", GROUP="dork", SYMLINK+="usbstick", ACTION=="add"

Aufpassen musst Du bei der Priorität. Deine Angaben können von den 
Systemregeln überschrieben werden. Besser was mit 90+ wählen.

von John Doe (Gast)


Lesenswert?

Rolf M. schrieb:
> Uhu U. schrieb:
>> Was muss man tun, damit
>> - die Platte der VM zugewiesen werden kann und
>> - das Host-System daran gehindert wird, diese Platte zu mounten?
>
> Das mounten verhindert man, indem man die Platte einfach nicht in die
> /etc/fstab einträgt.


Das stimmt leider nicht.

von Rolf M. (rmagnus)


Lesenswert?

John Doe schrieb:
>> Das mounten verhindert man, indem man die Platte einfach nicht in die
>> /etc/fstab einträgt.
>
> Das stimmt leider nicht.

Also bei mir (Kubuntu) wird eine SATA-Platte nicht automaisch gemountet, 
wenn ich die nicht explizit in die fstab schreibe. Woher sollte das 
System auch wissen, wohin sie gemountet werden soll?
Wenn es aber eigentlich um eine USB-Platte oder einen anderen 
Wechseldatenträger gehen sollte, wäre das natürlich was anders.

von ack (Gast)


Lesenswert?

Uhu U. schrieb:
> Ich habe mal etwas mit udev herumexperimentiert.

Gibt es bei Dir einen User vboxusers, das ist bei mir nur eine Gruppe.

von Georg (Gast)


Lesenswert?

Rolf M. schrieb:
> in VirtualBox ein bereits bestehendes
> System so zu "installieren", dass es direkt von der Festplatte gebootet
> wird?

Zuerst startet das Hostsystem, egal ob Linux oder Windows, und dann 
startet man die VM mit dem gewünschten BS als Parameter. Ich verwende 
z.B. Windows10 und starte nach dem Booten eine VMWare-VM mit einem 
Windows-Server. Kein Problem, der Server erscheint im Netzwerk. Die 
VM-Dateien entstehen durch Installieren des BS in einer neuen VM oder 
per Umwandlung eines bestehenden PC in eine VM.

Uhu U. schrieb:
> Ich habe also eine VM Mint-17 ohne Platte erzeugt

Das hatte ich so verstanden dass du sowieso ein neues Mint installiert 
hast, war wohl ein Missverständnis. Ich habe bisher (VMWare) sowohl ein 
BS neu installiert als auch alte PCs und Server konvertiert, damit ich 
sie auch noch mal verwenden kann wenn sie deinstalliert oder 
verschrottet sind.

Ich hatte auch schon mal Virtualbox verwendet weil es das auch noch in 
32bit gibt oder gab, das funktioniert aber kaum anders.

Georg

von Rolf M. (rmagnus)


Lesenswert?

Georg schrieb:
> Rolf M. schrieb:
>> in VirtualBox ein bereits bestehendes
>> System so zu "installieren", dass es direkt von der Festplatte gebootet
>> wird?
>
> Zuerst startet das Hostsystem, egal ob Linux oder Windows, und dann
> startet man die VM mit dem gewünschten BS als Parameter.

Ja, sofern der User die Berechtigung hat, auf das Medium direkt 
zuzugreifen. Aber gerade die fehlt ja.

von John Doe (Gast)


Lesenswert?

Rolf M. schrieb:
> Also bei mir (Kubuntu) wird eine SATA-Platte nicht automaisch gemountet,
> wenn ich die nicht explizit in die fstab schreibe.

Von automatisch war gar nicht die Rede.
Ich habe Uhu U. so verstanden, dass er verhindern will, dass man durch 
versehentliches Klicken in den Dateimanager das Dateisystem mountet.


> Woher sollte das
> System auch wissen, wohin sie gemountet werden soll?

Ubuntu (und Derivate) mounten nach /media/$USER/$UUID.

von Uhu U. (uhu)


Lesenswert?

Georg schrieb:
> Und warum gehst du nicht den normalen Weg und installierst dein BS in
> einer neuen, leeren VM?

Wenn du mir verrätst, wie ich das alte Mint-17 im Zustand, wie es auf 
der Platte steht, in eine VM bekomme, dann würde ich das machen. (Es 
kommt mir nicht auf darauf an, irgend ein Mint-17 in der VM zu haben, 
sondern genau das, was auf der Platte ist…)

von Uhu U. (uhu)


Lesenswert?

Rolf M. schrieb:
> Das mounten verhindert man, indem man die Platte einfach nicht in die
> /etc/fstab einträgt.

Ich meine nicht das automatische mounten, sondern das manuelle über den 
Klick auf das Device in Caja – das passiert schon mal aus Versehen und 
fürde wahrscheinlich dem System auf der Platte schlecht bekommen.

> Gibt es einen Benutzer "vboxusers" überhaupt? Bei mir existiert der
> nicht.

Nein, den gibts nicht – danke für den Hinweis.

> Was meinst du damit? Ist die nicht fest angeschlossen?

Ich habe einen 4-fach SATA-Wechselrahmen im Rechner, man kann also im 
Betrieb fröhlich Platten wechseln, wenn es nicht gerade die ist, von der 
die Kiste gebootet wurde.

von Uhu U. (uhu)


Lesenswert?

John Doe schrieb:
> Was meinst Du denn mit einlegen? Ist das eine USB-Platte?

Nein, SATA im Wechselrahmen.

> Aufpassen musst Du bei der Priorität. Deine Angaben können von den
> Systemregeln überschrieben werden. Besser was mit 90+ wählen.

Kann man denn OWNER und GROUP einfach so ändern, wenn die Platte vorher 
schon als /dev/sd? angelegt ist?

von John Doe (Gast)


Lesenswert?

Uhu U. schrieb:
> John Doe schrieb:
>> Was meinst Du denn mit einlegen? Ist das eine USB-Platte?
>
> Nein, SATA im Wechselrahmen.
>
>> Aufpassen musst Du bei der Priorität. Deine Angaben können von den
>> Systemregeln überschrieben werden. Besser was mit 90+ wählen.
>
> Kann man denn OWNER und GROUP einfach so ändern, wenn die Platte vorher
> schon als /dev/sd? angelegt ist?

Die letzte udev-Regel wird ausgeführt, daher der Rat mit der Prio 90+.

Manuell geht das mit
1
udevadm control --reload
2
udevadm trigger

Idealerweise den Trigger nur auf das Device.

von Uhu U. (uhu)


Lesenswert?

1
SUBSYSTEM=="block", ATTR{ID_SERIAL_SHORT}=="WD-WCC3F56xxxxx", MODE="0060",GROUP="vboxusers",SYMLINK+="mint-17"

bewirkt mit Prio 90 – nach udev-Neustart und trigger auf /dev/sdb – auch 
nichts.

von John Doe (Gast)


Lesenswert?

Uhu U. schrieb:
>
1
> SUBSYSTEM=="block", ATTR{ID_SERIAL_SHORT}=="WD-WCC3F56xxxxx", 
2
> MODE="0060",GROUP="vboxusers",SYMLINK+="mint-17"
3
>
>
> bewirkt mit Prio 90 – nach udev-Neustart und trigger auf /dev/sdb – auch
> nichts.

Mach es wie ich oben geschrieben habe, also mit
ATTRS{serial}==

von Uhu U. (uhu)


Lesenswert?

Ich habe jetzt alle Varianten von ATTR{…} mit serial und serial_short 
und der langen und der kurzen SN durchprobiert – die Platte wird nicht 
erkannt.

von Uhu U. (uhu)


Lesenswert?

VBoxManage kann ein raw image in eine .vdi-Datei wandeln. Da auf der 
Mint-19 Platte genug Platz ist, sollte das nur ein Zeitproblem sein…

Ich bin gespannt.

von John Doe (Gast)


Lesenswert?

Uhu U. schrieb:
> Ich habe jetzt alle Varianten von ATTR{…} mit serial und serial_short
> und der langen und der kurzen SN durchprobiert – die Platte wird nicht
> erkannt.

Alles hast Du sicherlich nicht durch... ;)

Ich habs jetzt bei mir mit einer SATA-Platte probiert. Folgendes geht:
1
KERNEL=="sd*", SUBSYSTEMS=="block", ENV{ID_SERIAL_SHORT}=="xxxxxxxxxxxx", MODE="0060", OWNER="n00b", GROUP="dork", SYMLINK+="pladde", ACTION=="add"

Als ID nimmst Du die, die Dir bei
1
udevadm test $(udevadm info -q path -n /dev/sdb)

angezeigt wird.

von Rolf M. (rmagnus)


Lesenswert?

Uhu U. schrieb:
> VBoxManage kann ein raw image in eine .vdi-Datei wandeln.

Ich habe es in der Vergangenheit bei einer Erneuerung des Rechners meist 
so gemacht, dass ich noch auf dem alten Rechner per Clonezilla ein Image 
gemacht und das dann in der VM wieder eingespielt habe. Das hat auch den 
Vorteil, dass unbenutzte Sektoren nachher Image keinen Platz 
verbrauchen, sofern Clonezilla das Filesystem kennt. Ob VBoxManage sowas 
auch kann, weiß ich nicht.
Meist ging es bei den Rechnen um Laptops, so dass ein Einbau der alten 
Platte in den neuen Rechner eh keine Option war.

von John Doe (Gast)


Lesenswert?

Die Short-ID ist übrigens wirklich short, Dein "WD-WCC3F56xxxxx" sieht 
nach der Langversion aus.

von Uhu U. (uhu)


Lesenswert?

John Doe schrieb:
> Als ID nimmst Du die, die Dir bei
> udevadm test $(udevadm info -q path -n /dev/sdb)
>
> angezeigt wird.

Da kommt ein umöglicher Haufen Text raus, der aber kein ID_SERIAL_SHORT 
enthält.

Mit
1
udevadm info -q all /dev/sdb
findet ers und zeigt die Informationen auch ohne großes Rauschen an.

Gibt es irgendwo eine Dokumentation mit den Bedeutungen der 
Schlüsselworte ENV etc.?

Wenn die .vdi-Datei mit dem Platteninhalt ordentlich funktioniert, dann 
lasse ich die Experimente mit der Harddisk – die habe ich dann als 
Backup.

von ack (Gast)


Lesenswert?

mit dd oder Clonezilla in eine Datei oder das übliche Clonezilla-Format, 
mit einem Live-Linux oder Clonezilla in einer temporären VM - die auch 
Zugriff auf Deine Mint-VM hat - in die Mint-VM kopieren oder 
"clonezillen". Temporäre VM wieder löschen.

von Uhu U. (uhu)


Lesenswert?

Rolf M. schrieb:
> Ich habe es in der Vergangenheit bei einer Erneuerung des Rechners meist
> so gemacht, dass ich noch auf dem alten Rechner per Clonezilla ein Image
> gemacht und das dann in der VM wieder eingespielt habe.

Das ist eine LUKS-Platte und VBoxManage kopiert die unentschlüsselt von 
/dev/sdb – also wird es sich sowieso nicht um das Dateisystem kümmern.

Kann man mit Clonezilla ein Image der entschlüsselten Platte machen? 
Vermutlich eher nicht, denn das geht ja wohl auf Partitionsbasis.

von John Doe (Gast)


Lesenswert?

Uhu U. schrieb:
> Gibt es irgendwo eine Dokumentation mit den Bedeutungen der
> Schlüsselworte ENV etc.?


http://www.reactivated.net/writing_udev_rules.html

von Andreas M. (amesser)


Lesenswert?

John Doe schrieb:
> Uhu U. schrieb:
>> Ich habe jetzt alle Varianten von ATTR{…} mit serial und serial_short
>> und der langen und der kurzen SN durchprobiert – die Platte wird nicht
>> erkannt.

ATTRS

Das "S" ist wichtig! Die verschiedenen Versionen von udev unterscheiden 
sich hier teils stark.

Ich habe bei mir SATA Wechselplatten für Backup, da benutze ich unter 
Devuan(Debian) die folgenden Regel für einen Symlink über die 
ENV-Variablen. Wichtig ist, das die Regel eine hohe Nummer bekommt, denn 
die "ENV" Variablen werden erst durch ein Skript in einer Regel mit 
niedriger Nummer generiert, sind also vorher gar nicht verfügbar.
1
#/etc/udev/rules.d/99-backup.rules
2
KERNEL=="sd*", ENV{ID_FS_LABEL}=="backup-extdisk-*", SYMLINK+="backup-extdisk"

Als Alternative zu Virtualbox würde ich Dir QEMU/KVM ans Herz legen. Da 
konfiguriert man die VM einmalig als VM auf Systemebene, und fügt dann 
einfach alle Nutzer der libvirt Gruppe zu, die die VM benutzen dürfen. 
Das bestehende Mint sollte problemlos mit dem (neuen) KVM Supervisor 
zurechtkommen.

von Uhu U. (uhu)


Lesenswert?

Andreas M. schrieb:
> Als Alternative zu Virtualbox würde ich Dir QEMU/KVM ans Herz legen.

Ja, das habe ich auf meiner To-Do-Liste… Mit der Migration zu Mint-19 
wollte ich nicht auch gleich noch anfangen, mit den VMs 
rumzuexperimentieren, die ich angelegt habe, um wichtige Anwendungen 
schnell auf ein anderes System verschieben zu können.

von Uhu U. (uhu)


Lesenswert?

So, das Kopieren der 1 TB-Platte mit VBoxManage hat ~ 3½ Stunden 
gedauert, wohlgemerkt von Platte zu Platte.

Wenn man zusätzlich noch innerhalb einer Platte kopieren müsste, dann 
würde es deutlich länger als nur die doppelte Zeit brauchen.

Das System läuft – sehr schön. Leider ist die Größe des Bildschirms mit 
1024x768 etwas mickrig. Größere Werte bietet VB mir nicht an.

von John Doe (Gast)


Lesenswert?

Andreas M. schrieb:
> Als Alternative zu Virtualbox würde ich Dir QEMU/KVM ans Herz legen. Da
> konfiguriert man die VM einmalig als VM auf Systemebene, und fügt dann
> einfach alle Nutzer der libvirt Gruppe zu, die die VM benutzen dürfen.
> Das bestehende Mint sollte problemlos mit dem (neuen) KVM Supervisor
> zurechtkommen.

Unter Ubuntu(-Derivaten) muss man aber aufpassen. libvirt wird dort 
(sinnvollerweise) unter apparmor-Kontrolle gestellt. Andere Pfade als 
den default-Storage muss man dann explizit in apparmor freigeben für 
libvirt.

von Rolf M. (rmagnus)


Lesenswert?

Uhu U. schrieb:
> Das System läuft – sehr schön. Leider ist die Größe des Bildschirms mit
> 1024x768 etwas mickrig. Größere Werte bietet VB mir nicht an.

Dann hast du vermutlich die Gasterweiterungen noch nicht installiert.

von Uhu U. (uhu)


Lesenswert?

Rolf M. schrieb:
> Dann hast du vermutlich die Gasterweiterungen noch nicht installiert.

Ja, aber ich schaffe es nicht, diese verdammte .iso zu mounten – siehe 
Beitrag "VirtualBox: Linux-VM mountet guest additions nicht"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.