Linux/VirtualBox: VM von SATA Platte booten

#6065754
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?
#6066158
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.
#6066351
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?
Gast #6066352
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.
#6066359
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.
Gast #6066379
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
#6066386
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.
Gast #6066387
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.
#6066454
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…)
#6066465
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.
#6066468
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?
Gast #6066474
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.
Gast #6066587
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.
#6066591
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.
#6066608
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.
#6066618
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.
#6066734
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.
#6066800
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.
Gast #6066803
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren