2016-04-12 28 views
-1

Ich möchte eine Festplatte löschen und dann info Linux, um den/dev/mapper zu aktualisieren. Hier ist das Betriebsbeispiel. Erstellen Sie einen Test pv und vg auf/dev/vdc1 und erstellen Sie dann test lv. Verwenden Sie dd, um die ersten 8K-Daten von/dev/vdc1 zu löschen (löschen Sie die lvm-Metadaten).Wie informiert man Linux, um Geräte-Mapper nach dem Löschen einer Festplatte von dd neu zu laden?

# pvcreate /dev/vdc1 
# vgcreate testvg /dev/vdc1 
# lvcreate -L10G -n testlv testvg 
# lsblk /dev/vdc 
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 
vdc    252:32 0 120G 0 disk 
└─vdc1   252:33 0 108G 0 part 
    └─testvg-testlv 253:2 0 10G 0 lvm 

# dd if=/dev/zero of=/dev/vdc1 bs=8K count=1 oflag=direct 

Jetzt ist die Frage, wie Linux update/dev/mapper ohne Neustart neu zu informieren? Oder gibt es eine bequemere Möglichkeit, lvm beim Neustart zu löschen?

+0

Ich weiß, es gibt einige "ioctl" für etwas ähnliches, vielleicht sehen Sie sich die Werkzeuge, die normalerweise verwendet werden, um sie zu aktualisieren? Oder möglicherweise können Sie 'udev' direkt auslösen ... – o11c

+0

Es sieht so aus, dass' dmsetup remove' die Geräte-Mapper-Information aktualisieren kann, aber ich bin mir nicht sicher, ob es die richtige Methode ist. –

Antwort

1

Nun, keine Antwort? Ich recherchiere über lsblk. Es wird implementiert, indem /dev oder /sysfs gelesen wird, um die Blockinformationen anzuzeigen. Also ich denke, es kann durch dmsetup remove Befehl aufgelöst werden, um alle lv unter zerstört vg zu entfernen. Wie folgt aus:

# pvcreate /dev/vdc1 
# vgcreate testvg /dev/vdc1 
# lvcreate -L10G -n testlv testvg 
# dd if=/dev/zero of=/dev/vdc1 bs=8K count=1 oflag=direct 
# dmsetup remove /dev/testvg/* 

Dann ließ nichts in lsblk mehr. Ich frage mich jedoch immer noch, ob der Weg nicht der beste Weg ist. Kann jemand mehr Methoden anhängen?