Hallo allerseits. Im Vorgriff auf den Start einer neuen Gruppe des Linux-Administratorkurses veröffentlichen wir nĂŒtzliches Material, das von unserem Studenten sowie dem Kurs-Mentor Roman Travin, dem Spezialisten fĂŒr technischen Support fĂŒr Produkte von REG.RU, verfasst wurde.In diesem Artikel werden zwei FĂ€lle beschrieben, in denen Festplatten ausgetauscht und Informationen auf neue, gröĂere Festplatten ĂŒbertragen werden, wobei das Array und das Dateisystem weiter erweitert werden. Der erste Fall betrifft den Austausch von DatentrĂ€gern mit demselben MBR / MBR- oder GPT / GPT-Markup, der zweite Fall den Austausch von DatentrĂ€gern mit MBR-Markierung fĂŒr DatentrĂ€ger mit einer KapazitĂ€t von mehr als 2 TB, fĂŒr die ein GPT-Markup mit der Biosboot-Partition erforderlich ist. In beiden FĂ€llen sind die DatentrĂ€ger, auf die wir Daten ĂŒbertragen, bereits auf dem Server installiert. Das fĂŒr die Root-Partition verwendete Dateisystem ist ext4.
Fall 1: Ersetzen kleinerer Laufwerke durch gröĂere Laufwerke (bis zu 2 TB)
Aufgabe: Ersetzen Sie aktuelle Festplatten durch gröĂere Festplatten (bis zu 2 TB) mit InformationsĂŒbertragung. In diesem Fall verfĂŒgen wir ĂŒber 2 x 240 GB SSD-Festplatten (RAID-1) mit dem installierten System und 2 x 1 TB SATA-Festplatten, auf die Sie das System ĂŒbertragen mĂŒssen.
Betrachten Sie das aktuelle Festplattenlayout.
[root@localhost ~]
ĂberprĂŒfen Sie den aktuell verwendeten Dateisystemspeicher.
[root@localhost ~]
Die GröĂe des Dateisystems vor dem Ersetzen der Festplatten betrĂ€gt 204 GB. Es werden 2 Software-md126-Arrays verwendet, die in
/boot
md127
, und
md127
, das als
physisches Volume fĂŒr die VG-Gruppe
vg0 verwendet wird .
1. Entfernen von Festplattenpartitionen aus Arrays
ĂberprĂŒfen Sie den Status des Arrays
[root@localhost ~]
Das System verwendet 2 Arrays:
md126
(EinhÀngepunkt
/boot
) - besteht aus den
md127
/dev/sda1
und
/dev/sdb1
,
md127
(LVM fĂŒr
Swap und Root des Dateisystems) - besteht aus
/dev/sda2
und
/dev/sdb2
.
Wir markieren die Partitionen der ersten Festplatte, die in jedem Array verwendet werden, als fehlerhaft.
mdadm /dev/md126 --fail /dev/sda1 mdadm /dev/md127 --fail /dev/sda2
Wir entfernen Abschnitte des Blocks device / dev / sda aus Arrays.
mdadm /dev/md126 --remove /dev/sda1 mdadm /dev/md127 --remove /dev/sda2
Nachdem wir die Festplatte aus dem Array entfernt haben, sehen die Informationen zu BlockgerĂ€ten folgendermaĂen aus.
[root@localhost ~]
Der Status von Arrays nach dem Entfernen von DatentrÀgern.
[root@localhost ~]
2. Kopieren der Partitionstabelle auf eine neue Festplatte
Sie können die auf der Festplatte verwendete Partitionstabelle mit dem folgenden Befehl ĂŒberprĂŒfen.
fdisk -l /dev/sdb | grep 'Disk label type'
Die Ausgabe fĂŒr den MBR lautet:
Disk label type: dos
fĂŒr GPT:
Disk label type: gpt
Markup-Tabelle fĂŒr MBR kopieren:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
Bei diesem Befehl ist das
erste das Laufwerk,
von dem das Markup kopiert wird, und das
zweite das zu kopierende Laufwerk.
ACHTUNG : Bei GPT wird zuerst das Laufwerk angegeben, auf das das Markup kopiert werden soll , und dann das Laufwerk, auf das das Markup vom zweiten Laufwerk kopiert werden soll. Wenn Sie die DatentrĂ€ger vertauschen, wird das ursprĂŒnglich fehlerfreie Markup ĂŒberschrieben und zerstört.
Kopieren der Markup-Tabelle fĂŒr das GPT:
sgdisk -R /dev/sd /dev/sdb
Weisen Sie als NĂ€chstes der Festplatte eine zufĂ€llige UUID zu (fĂŒr GPT).
sgdisk -G /dev/sdc
Nachdem der Befehl ausgefĂŒhrt wurde, sollten Partitionen auf der Festplatte
/dev/sdc
werden.
[root@localhost ~]
Wenn nach der ausgefĂŒhrten Aktion die Partitionen im System auf der
/dev/sdc
Platte nicht definiert sind, fĂŒhren wir den Befehl zum erneuten Lesen der Partitionstabelle aus.
sfdisk -R /dev/sdc
Wenn die aktuellen DatentrĂ€ger die MBR-Tabelle verwenden und die Informationen auf DatentrĂ€ger mit einer KapazitĂ€t von mehr als 2 TB ĂŒbertragen werden mĂŒssen, mĂŒssen neue DatentrĂ€ger mithilfe des Biosboot-Abschnitts manuell ein GPT-Markup erstellen. Dieser Fall wird in Teil 2 dieses Artikels behandelt.
3. HinzufĂŒgen von Partitionen der neuen Festplatte zum Array
FĂŒgen Sie den entsprechenden Arrays Festplattenpartitionen hinzu.
mdadm /dev/md126 --add /dev/sdc1 mdadm /dev/md127 --add /dev/sdc2
ĂberprĂŒfen Sie, ob Abschnitte hinzugefĂŒgt wurden.
[root@localhost ~]
Danach warten wir auf die Synchronisation der Arrays.
[root@localhost ~]
Sie können den Synchronisierungsvorgang mit dem Ăberwachungsdienstprogramm kontinuierlich ĂŒberwachen.
watch -n 2 cat /proc/mdstat
Die
-n
gibt an, in welchen Intervallen in Sekunden der Befehl ausgefĂŒhrt werden muss, um den Fortschritt zu ĂŒberprĂŒfen.
Wiederholen Sie die Schritte 1 bis 3 fĂŒr das nĂ€chste Ersatzlaufwerk.Wir markieren die Partitionen der zweiten Festplatte, die in jedem Array verwendet werden, als fehlerhaft.
mdadm /dev/md126 --fail /dev/sdb1 mdadm /dev/md127 --fail /dev/sdb2
Wir entfernen Abschnitte des BlockgerÀtes
/dev/sdb
aus Arrays.
mdadm /dev/md126 --remove /dev/sdb1 mdadm /dev/md127 --remove /dev/sdb2
Nachdem wir die Festplatte aus dem Array entfernt haben, sehen die Informationen zu BlockgerĂ€ten folgendermaĂen aus.
[root@localhost ~]
Der Status von Arrays nach dem Entfernen von DatentrÀgern.
[root@localhost ~]
Kopieren Sie die MBR-Markup-Tabelle vom Laufwerk
/dev/sd
auf das Laufwerk
/dev/sdd
.
sfdisk -d /dev/sd | sfdisk /dev/sdd
Nachdem der Befehl ausgefĂŒhrt wurde, sollten Partitionen auf dem Laufwerk
/dev/sdd
.
[root@localhost ~]
FĂŒgen Sie den Arrays Festplattenpartitionen hinzu.
mdadm /dev/md126 --add /dev/sdd1 mdadm /dev/md127 --add /dev/sdd2
ĂberprĂŒfen Sie, ob Abschnitte hinzugefĂŒgt wurden.
[root@localhost ~]
Danach warten wir auf die Synchronisation der Arrays.
[root@localhost ~]
5. Installieren Sie GRUB auf neuen Laufwerken
FĂŒr CentOS:
grub2-install /dev/sdX
FĂŒr Debian / Ubuntu:
grub-install /dev/sdX
Dabei ist
X
der Buchstabe des BlockgerÀts. In diesem Fall installieren Sie GRUB unter
/dev/sdc
und
/dev/sdd
.
6. Erweiterung des Dateisystems (ext4) der Root-Partition
931,5 GB sind auf den neuen Laufwerken
/dev/sdc
und
/dev/sdd
. Da die Partitionstabelle von kleineren Festplatten kopiert wird, sind auf den Partitionen
/dev/sdc2
und
/dev/sdd2
222,5 GB verfĂŒgbar.
sdc 8:32 0 931,5G 0 disk ââsdc1 8:33 0 1G 0 part â ââmd126 9:126 0 1023M 0 raid1 /boot ââsdc2 8:34 0 222,5G 0 part ââmd127 9:127 0 222,4G 0 raid1 ââvg0-root 253:0 0 206,4G 0 lvm / ââvg0-swap 253:1 0 16G 0 lvm [SWAP] sdd 8:48 0 931,5G 0 disk ââsdd1 8:49 0 1G 0 part â ââmd126 9:126 0 1023M 0 raid1 /boot ââsdd2 8:50 0 222,5G 0 part ââmd127 9:127 0 222,4G 0 raid1 ââvg0-root 253:0 0 206,4G 0 lvm / ââvg0-swap 253:1 0 16G 0 lvm [SWAP]
Es ist notwendig:
- Erweitern Sie Abschnitt 2 auf jedem Laufwerk.
- Erweitern Sie das md127-Array,
- Erweitern Sie PV (physikalisches Volumen),
- LV (Logical-Volume) vg0-root erweitern,
- Erweitern Sie das Dateisystem.
Erweitern Sie mit dem Dienstprogramm
/dev/sdc2
auf den Maximalwert.
parted /dev/sdc
Befehl
parted /dev/sdc
(1) aus und zeigen die aktuelle Partitionstabelle mit dem Befehl
p
(2) an.

Wie Sie sehen, endet das Ende von Abschnitt 2 mit 240 GB. Erweitern wir den Abschnitt mit dem Befehl
resizepart
2
, wobei 2 die Abschnittsnummer (3) ist. Wir geben den Wert in digitalem Format an, zum Beispiel 1000 GB, oder wir verwenden die Angabe der Festplattenfreigabe - 100%. Wir ĂŒberprĂŒfen erneut, ob der Abschnitt eine neue GröĂe hat (4).
Wiederholen Sie die obigen Schritte fĂŒr das Laufwerk
/dev/sdd
. Nach dem Erweitern der Partitionen wurden
/dev/sdc2
und
/dev/sdd2
gleich 930,5 GB.
[root@localhost ~]
Danach erweitern wir das
md127- Array auf das Maximum.
mdadm --grow /dev/md127 --size=max
ĂberprĂŒfen Sie, ob das Array erweitert wurde. Jetzt ist seine GröĂe 930,4 GB geworden.
[root@localhost ~]
Wir fĂŒhren die Erweiterung des
physischen Volumens durch . ĂberprĂŒfen Sie vor der Erweiterung den aktuellen Status der PV.
[root@localhost ~]
Wie Sie sehen, belegt PV
/dev/md127
222,4 GB Speicherplatz.
Erweitern Sie PV mit dem folgenden Befehl.
pvresize /dev/md127
ĂberprĂŒfen Sie das Ergebnis der PV-Erweiterung.
[
root@localhost ~]
Logisches Volume erweitern . ĂberprĂŒfen Sie vor der Erweiterung den aktuellen Status von LV (1).
[root@localhost ~]
LV
/dev/vg0/root
verwendet 206,41 GB.
Wir erweitern LV mit dem folgenden Befehl (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
ĂberprĂŒfen Sie die ausgefĂŒhrte Aktion (3).
[root@localhost ~]
Wie Sie sehen, betrug der belegte Speicherplatz nach der LV-Erweiterung 914,39 GB.

Das LV-Volumen hat zugenommen (4), das Dateisystem belegt jedoch immer noch 204 GB (5).
1. FĂŒhren Sie die Dateisystemerweiterung durch. resize2fs /dev/mapper/vg0-root
Wir ĂŒberprĂŒfen nach dem ausgefĂŒhrten Befehl die GröĂe des Dateisystems.
[root@localhost ~]
Die GröĂe des Root-Dateisystems wird auf 900 GB erhöht. Nachdem Sie die Schritte ausgefĂŒhrt haben, können Sie die alten Discs entfernen.
Fall 2: Ersetzen kleinerer Laufwerke durch gröĂere Laufwerke (mehr als 2 TB)
Aufgabe: Ersetzen Sie aktuelle DatentrĂ€ger durch gröĂere DatentrĂ€ger (2 x 3 TB), indem Sie Informationen speichern. In diesem Fall verfĂŒgen wir ĂŒber 2 x 240 GB SSD-Festplatten (RAID-1) mit dem installierten System und 2 x 3 TB SATA-Festplatten, auf die Sie das System ĂŒbertragen mĂŒssen. Aktuelle Laufwerke verwenden die MBR-Partitionstabelle. Da neue Festplatten eine KapazitĂ€t von mehr als 2 TB haben, mĂŒssen sie die GPT-Tabelle verwenden, da MBR nicht mit Festplatten arbeiten kann, die gröĂer als 2 TB sind.
Zeigen Sie das aktuelle Festplattenlayout an.
[root@localhost ~]
ĂberprĂŒfen Sie die Partitionstabelle, die auf dem Laufwerk
/dev/sda
.
[root@localhost ~]
Das Laufwerk
/dev/sdb
verwendet eine Ă€hnliche Partitionstabelle. ĂberprĂŒfen Sie den verwendeten Speicherplatz im System.
[root@localhost ~]
Wie Sie sehen, ist das Stammverzeichnis des Dateisystems 204 GB. ĂberprĂŒfen Sie den aktuellen Status des Software-RAID.
1. Installieren Sie die GPT-Partitionstabelle und die Festplattenpartitionierung
ĂberprĂŒfen Sie das Festplattenlayout nach Sektor.
[root@localhost ~]
Auf dem neuen 3-TB-Laufwerk mĂŒssen drei Partitionen erstellt werden:
bios_grub
Abschnitt fĂŒr die GPT-KompatibilitĂ€t mit dem BIOS,- Die Partition fĂŒr das RAID-Array, die in
/boot
eingehĂ€ngt werden soll. - Die Partition fĂŒr das RAID-Array, auf der sich LV-Root und LV-Swap befinden .
Installieren Sie das Dienstprogramm
parted mit dem Befehl
yum install -y parted
(fĂŒr CentOS),
apt install -y parted
(fĂŒr Debian / Ubuntu).
FĂŒhren Sie mit
parted die folgenden Befehle aus, um die Festplatte zu partitionieren.
parted /dev/sdc
Befehl
parted /dev/sdc
und wechseln in den Bearbeitungsmodus fĂŒr das Festplattenlayout.
Erstellen Sie eine GPT-Partitionstabelle.
(parted) mktable gpt
Erstelle 1 Sektion
bios_grub
Sektion und setze ein Flag dafĂŒr.
(parted) mkpart primary 1MiB 3MiB (parted) set 1 bios_grub on
Erstellen Sie einen Abschnitt 2 und setzen Sie ein Flag dafĂŒr. Die Partition wird als Block fĂŒr das RAID-Array verwendet und in
/boot
.
(parted) mkpart primary ext2 3MiB 1028MiB (parted) set 2 boot on
Wir erstellen einen 3-Abschnitt, der auch als Array-Block verwendet wird, in dem sich LVM befindet.
(parted) mkpart primary 1028MiB 100%
In diesem Fall ist das Setzen des Flags nicht erforderlich, es kann jedoch bei Bedarf mit dem folgenden Befehl gesetzt werden.
(parted) set 3 raid on
ĂberprĂŒfen Sie die erstellte Tabelle.
(parted) p : ATA TOSHIBA DT01ACA3 (scsi) /dev/sdc: 3001GB (./.): 512B/4096B : gpt Disk Flags: 1 1049kB 3146kB 2097kB primary bios_grub 2 3146kB 1077MB 1074MB primary 3 1077MB 3001GB 3000GB primary
Weisen Sie dem Laufwerk eine neue zufÀllige GUID zu.
sgdisk -G /dev/sdd
2. Entfernen von Partitionen der ersten Festplatte aus Arrays
ĂberprĂŒfen Sie den Status des Arrays
[root@localhost ~]
Das System verwendet 2 Arrays: md126 (EinhÀngepunkt / boot) - besteht aus
/dev/sda1
und
/dev/sdb1
,
md127
(LVM fĂŒr
swap
und Root des Dateisystems) - besteht aus
/dev/sda2
und
/dev/sdb2
.
Wir markieren die Partitionen der ersten Festplatte, die in jedem Array verwendet werden, als fehlerhaft.
mdadm /dev/md126 --fail /dev/sda1 mdadm /dev/md127 --fail /dev/sda2
Wir entfernen Abschnitte des Blocks device
/dev/sda
aus Arrays.
mdadm /dev/md126 --remove /dev/sda1 mdadm /dev/md127 --remove /dev/sda2
ĂberprĂŒfen Sie den Status des Arrays, nachdem Sie die Festplatte entfernt haben.
[root@localhost ~]
3. HinzufĂŒgen von Partitionen der neuen Festplatte zum Array
Der nĂ€chste Schritt ist das HinzufĂŒgen der Partitionen der neuen Festplatte zu den Arrays zur Synchronisierung. Wir schauen uns den aktuellen Stand des Festplattenlayouts an.
[root@localhost ~]
Die
/dev/sdc1
ist eine
bios_grub
Partition und nicht an der Erstellung von Arrays beteiligt.
/dev/sdc2
nur
/dev/sdc2
und
/dev/sdc3
. FĂŒgen Sie diese Abschnitte den entsprechenden Arrays hinzu.
mdadm /dev/md126 --add /dev/sdc2 mdadm /dev/md127 --add /dev/sdc3
Dann warten wir auf die Synchronisation des Arrays.
[root@localhost ~]
Partitionieren von Festplatten nach dem HinzufĂŒgen von Partitionen zu einem Array.
[root@localhost ~]
4. Entfernen von Partitionen der zweiten Festplatte aus Arrays
Wir markieren die Partitionen der zweiten Festplatte, die in jedem Array verwendet werden, als fehlerhaft.
mdadm /dev/md126 --fail /dev/sdb1 mdadm /dev/md127 --fail /dev/sdb2
Wir entfernen Abschnitte des Blocks device
/dev/sda
aus Arrays.
mdadm /dev/md126 --remove /dev/sdb1 mdadm /dev/md127 --remove /dev/sdb2
5. Kopieren Sie die GPT-Markup-Tabelle und synchronisieren Sie das Array
Um die GPT-Markup-Tabelle zu kopieren, verwenden wir das Dienstprogramm
sgdisk
, das im Paket fĂŒr die Arbeit mit Festplattenpartitionen und der GPT-Tabelle -
gdisk
.
Installieren Sie
gdisk
fĂŒr CentOS:
yum install -y gdisk
Installieren Sie die
gdisk
fĂŒr Debian / Ubuntu:
apt install -y gdisk
ACHTUNG : Bei GPT wird zuerst der DatentrĂ€ger angegeben, auf den das Markup kopiert wird. Der zweite DatentrĂ€ger ist der DatentrĂ€ger, von dem das Markup kopiert wird. Wenn Sie die DatentrĂ€ger vertauschen, wird das ursprĂŒnglich fehlerfreie Markup ĂŒberschrieben und zerstört.
Kopieren Sie die GPT-Markup-Tabelle.
sgdisk -R /dev/sdd /dev/sdc
Partitionieren von Festplatten nach dem Ăbertragen einer Tabelle auf das Laufwerk
/dev/sdd
.
[root@localhost ~]
Als NĂ€chstes fĂŒgen wir jede der an den Software-RAID-Arrays beteiligten Partitionen hinzu.
mdadm /dev/md126 --add /dev/sdd2 mdadm /dev/md127 --add /dev/sdd3
Wir warten auf die Synchronisation des Arrays.
[root@localhost ~]
Nach dem Kopieren des GPT-Markups auf einen zweiten neuen DatentrĂ€ger sieht das Markup folgendermaĂen aus.
[root@localhost ~]
Installieren Sie als NĂ€chstes GRUB auf den neuen Laufwerken.
Installation fĂŒr CentOS:
grub2-install /dev/sdX
Installation fĂŒr Debian / Ubuntu:
grub-install /dev/sdX
wobei
X
der Laufwerksbuchstabe ist, in unserem Fall die Laufwerke
/dev/sdc
und
/dev/sdd
.
Aktualisieren der Informationen zum Array.
FĂŒr CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.conf
FĂŒr Debian / Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
Aktualisieren des
initrd
Image:
FĂŒr CentOS:
dracut -f -v --regenerate-all
FĂŒr Debian / Ubuntu:
update-initramfs -u -k all
Aktualisieren der GRUB-Konfiguration.
FĂŒr CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
FĂŒr Debian / Ubuntu:
update-grub
Nach den Schritten können Sie die alten Discs entfernen.
6. Erweiterung des Dateisystems (ext4) der Root-Partition
Partitionieren von Festplatten vor dem Erweitern des Dateisystems nach dem Verschieben des Systems auf RAID-1-Festplatten (2 x 3 TB).
[root@localhost ~]
Die
/dev/sdd3
/dev/sdc3
und
/dev/sdd3
belegen
/dev/sdd3
2,7 TB. Da wir eine neue Partitionierung von Festplatten mit der GPT-Tabelle erstellt haben, wurde die GröĂe der 3 Partitionen sofort auf den maximal möglichen Festplattenspeicher festgelegt. In diesem Fall ist das Erweitern der Partition nicht erforderlich.
Es ist notwendig:
- Erweitern Sie das md126-Array,
- Erweitern Sie PV (physikalisches Volumen),
- LV (Logical-Volume) vg0-root erweitern,
- Erweitern Sie das Dateisystem.
1. md126
Array bis zum Maximum. mdadm --grow /dev/md126 --size=max
Nach der Erweiterung des
md126
Arrays
md126
GröĂe des belegten Speicherplatzes auf 2,7 TB.
[root@localhost ~]
Der Ausbau Physikalisches Volumens .Vor der Erweiterung prĂŒfen wir den aktuellen Wert des belegten Platzes PV / dev/md126
. [root@localhost ~]
Erweitern Sie PV mit dem folgenden Befehl. pvresize /dev/md126
ĂberprĂŒfen Sie die abgeschlossene Aktion. [root@localhost ~]
Expanding - Klasse logischen Volume vg0-root .Nach der Erweiterung von PV ĂŒberprĂŒfen wir den belegten Raum von VG. [root@localhost ~]
ĂberprĂŒfen Sie den von LV belegten Platz. [root@localhost ~]
Das vg0-root-Volume nimmt 206,41 GB auf.Erweitern Sie LV auf den maximalen Speicherplatz. lvextend -l +100%FREE /dev/mapper/vg0-root
ĂberprĂŒfen des LV-Speicherplatzes nach der Erweiterung. [root@localhost ~]
Dateisystem erweitern (ext4).ĂberprĂŒfen Sie die aktuelle DateisystemgröĂe. [root@localhost ~]
Das Volume / dev / mapper / vg0-root belegt nach der LV-Erweiterung 204 GB.Das Dateisystem erweitern. resize2fs /dev/mapper/vg0-root
ĂberprĂŒfen Sie die GröĂe des Dateisystems nach seiner Erweiterung. [root@localhost ~]
Die GröĂe des Dateisystems wird um das gesamte Volume des Volumes erhöht.