Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: ✔️ maszyny wirtualne z systemem Linux
Ten artykuł zawiera rozwiązanie problemu polegającego na tym, że nie można zmienić rozmiaru partycji głównego rekordu rozruchowego (MBR) dla dysku danych większego niż 2 TB na maszynie wirtualnej Azure Linux.
Ważne
Ten artykuł dotyczy obsługiwanych dystrybucji systemu Linux.
Symptomy
Po uruchomieniu polecenia w celu zmiany rozmiaru fdisk
partycji MBR zostanie wyświetlony następujący komunikat ostrzegawczy:
Rozmiar tego dysku wynosi 8,8 TB. Format tabeli partycji SYSTEMU DOS nie może być używany na dyskach dla woluminów większych niż 2 TB dla sektorów 512 bajtów. Użyj formatu tabeli partycji parted(1) i GUID (GPT).
Oto przykład polecenia:
sudo fdisk /dev/sdd
Oto przykład danych wyjściowych polecenia:
WARNING: The size of this disk is 8.8 TB (8796093022208 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID
partition table format (GPT).
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help):
Command (m for help): d
Selected partition 1
Partition 1 is deleted
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-4294967295, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4294967294, default 4294967294):
Using default value 4294967294
Partition 1 of type Linux and of size 2 TiB is set <--- HERE
Command (m for help): p
Disk /dev/sdd: 8796.1 GB, 8796093022208 bytes, 17179869184 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x7024d1b6
Device Boot Start End Blocks Id System
/dev/sdd1 2048 4294967294 2147482623+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
Aby sprawdzić nowy rozmiar, wykonaj następujące kroki:
Poinformuj system operacyjny o zmianie tabeli partycji, uruchamiając następujące polecenie:
sudo partprobe /dev/sdd
Sprawdź nowy rozmiar partycji
/dev/sdd1
, uruchamiając następujące polecenie:sudo lsblk -o NAME,TYPE,FSTYPE,LABEL,SIZE,RO,MOUNTPOINT
Dane wyjściowe polecenia pokazują, że rozmiar partycji został zmieniony tylko na 2 TB. Oto przykład danych wyjściowych polecenia:
NAME TYPE FSTYPE LABEL SIZE RO MOUNTPOINT sda disk 32G 0 ├─sda1 part vfat 500M 0 /boot/efi ├─sda2 part xfs 500M 0 /boot ├─sda3 part xfs 31G 0 / └─sda4 part 2M 0 sdb disk 256G 0 └─sdb1 part ext4 256G 0 /mnt sdd disk 8T 0 └─sdd1 part ext4 2T 0 /appext4
Przyczyna
MbR, który zawiera informacje o granicach partycji i typie partycji (system plików), ma limit adresowania 2^32 sektorów. Ograniczenie adresów 32-bitowych w strukturze danych partycji MBR ogranicza rozmiar dysku i partycji.
W przypadku sektorów 512 bajtów ograniczenie dotyczące partycji MBR wynosi 2 TB. W przypadku nowszych urządzeń 4Kn każdy sektor logiczny wynosi 2^32 x 4096 bajtów lub 16 TB.
Rozwiązanie
Ponieważ tabela partycji GUID (GPT) nie ma ograniczeń dotyczących sektora, zalecamy użycie GPT dla dysku danych o rozmiarze 2 TB lub większym.
Poniżej przedstawiono dwie metody używania GPT na dyskach danych:
Utwórz pełną kopię zapasową danych na dysku i utwórz ponownie GPT.
Zmiana typu partycji z MBR na GPT
Ważne
- Utwórz migawkę dysku danych przed wprowadzeniem jakiejkolwiek zmiany.
- Tę zmianę można wprowadzić tylko na dysku danych, a nie na dysku z systemem operacyjnym. W przypadku wprowadzenia jej na dysku z systemem operacyjnym, uniemożliwi to rozruch.
- W przypadku oprogramowania Red Hat nie można przekonwertować etykiety MSDOS na GPT bez utraty danych.
Krok 1. Identyfikowanie bieżącego typu tabeli partycji
Użyj jednego z poniższych narzędzi, aby sprawdzić, czy bieżący dysk danych to MBR lub GPT.
Krok 2. Ponowne utworzenie partycji
Uwaga 16.
W tej sekcji użyto gdisk
narzędzia do ponownego utworzenia partycji jako przykładu.
gdisk
Zainstaluj narzędzie, jeśli nie jest zainstalowane na maszynie wirtualnej z systemem Linux:sudo yum install gdisk -y
Sprawdź bieżący rozmiar dysku danych:
sudo gdisk -l /dev/sdd | grep Disk | grep sectors
Disk /dev/sdd: 17179869184 sectors, 8.0 TiB
Zatrzymaj aplikację uruchomioną na maszynie wirtualnej i odinstaluj system plików:
sudo systemctl stop myapp.service sudo umount /appext4
Uwaga 16.
- Oba
myapp.service
i/appext4
są przykładowymi wpisami. Zastąp je odpowiednio. - Jeśli musisz zwiększyć rozmiar dysku danych, możesz to zrobić teraz za pośrednictwem konta platformy Azure. Zmiana rozmiaru dysku w witrynie Azure Portal wymaga przestoju. Aby uzyskać więcej informacji, zobacz Rozwijanie dysku zarządzanego platformy Azure.
- Oba
Utwórz ponownie numer partycji 1 przy użyciu
gdisk
polecenia :sudo gdisk /dev/sdd
GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: MBR only BSD: not present APM: not present GPT: not present *************************************************************** Found invalid GPT and valid MBR; converting MBR to GPT format in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing q if you dont want to convert your MBR partitions to GPT format! *************************************************************** Command (? for help): p --> PRINT PARTITION TABLE Disk /dev/sdd: 17179869184 sectors, 8.0 TiB Logical sector size: 512 bytes Disk identifier (GUID): 8A3DAD49-6916-4BC5-836B-2F90C5161C05 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 17179869150 Partitions will be aligned on 2048-sector boundaries Total free space is 12884903870 sectors (6.0 TiB) Number Start (sector) End (sector) Size Code Name 1 2048 4294967294 2.0 TiB 8300 Linux filesystem Command (? for help): d --> DELETE PARTITION TABLE Using 1 Command (? for help): n --> CREATE NEW PARTITION TABLE Partition number (1-128, default 1): --> PARTITION 1 First sector (34-17179869150, default = 2048) or {+-}size{KMGTP}: 2048 --> SAME 1th SECTOR AS THE ORIGINAL PARTITION Last sector (2048-17179869150, default = 17179869150) or {+-}size{KMGTP}: --> HIT ENTER TO USE THE WHOLE SPACE, IN THIS CASE 8 TB Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): p --> PRINT PARTITION TABLE Disk /dev/sdd: 17179869184 sectors, 8.0 TiB Logical sector size: 512 bytes Disk identifier (GUID): 8A3DAD49-6916-4BC5-836B-2F90C5161C05 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 17179869150 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 17179869150 8.0 TiB 8300 Linux filesystem Command (? for help): w --> APPLY CHANGES Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y --> "Y" TO APPLY OK; writing new GUID partition table (GPT) to /dev/sdd. Warning: The kernel is still using the old partition table. The new table will be used at the next reboot. The operation has completed successfully.
Sprawdź, czy styl partycji został zmieniony na GPT:
sudo gdisk -l /dev/sdd | grep -A4 '^Partition table scan:'
Partition table scan: MBR: protective BSD: not present APM: not present GPT: present
Sprawdź rozmiar partycji, uruchamiając następujące polecenie:
sudo lsblk -o NAME,TYPE,FSTYPE,LABEL,SIZE,RO,MOUNTPOINT
NAME TYPE FSTYPE LABEL SIZE RO MOUNTPOINT sda disk 32G 0 ├─sda1 part vfat 500M 0 /boot/efi ├─sda2 part xfs 500M 0 /boot ├─sda3 part xfs 31G 0 / └─sda4 part 2M 0 sdb disk 256G 0 └─sdb1 part ext4 256G 0 /mnt sdd disk 8T 0 └─sdd1 part ext4 2T 0 /appext4
Odinstalowywanie systemu plików, który został zainstalowany automatycznie i napraw go:
sudo umount /appext4 sudo fsck.ext4 -fy /dev/sdd1
e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/sdd1: 6728/134217728 files (0.2% non-contiguous), 8849024/536870655 blocks
Ponownie odinstaluj system plików:
sudo mount /appext4
Zmień rozmiar systemu plików:
Jeśli system plików to
ext4
, uruchom następujące polecenie:sudo resize2fs /dev/sdd1
resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/sdd1 is mounted on /appext4; on-line resizing required old_desc_blocks = 256, new_desc_blocks = 1024 The filesystem on /dev/sdd1 is now 2147483387 blocks long.
Jeśli system plików to
XFS
, uruchom następujące polecenie:sudo xfsgrowfs /dev/sdd1
Sprawdź nowy rozmiar:
sudo lsblk -o NAME,TYPE,FSTYPE,LABEL,SIZE,RO,MOUNTPOINT
NAME TYPE FSTYPE LABEL SIZE RO MOUNTPOINT sda disk 32G 0 ├─sda1 part vfat 500M 0 /boot/efi ├─sda2 part xfs 500M 0 /boot ├─sda3 part xfs 31G 0 / └─sda4 part 2M 0 sdb disk 256G 0 └─sdb1 part ext4 256G 0 /mnt sdc disk 1T 0 └─sdc1 part LVM2_member 1T 0 └─vgtest1-lvol1 lvm ext4 500G 0 sdd disk 8T 0 └─sdd1 part ext4 8T 0 /appext4 sde disk 1T 0
Zastrzeżenie dotyczące innych firm
Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, w odniesieniu do wydajności lub niezawodności tych produktów.
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.