- Инициализация диска с данными на сервере Linux емкостью более 2 ТБ (parted)
- Предварительные условия
- Создание и монтирование разделов
- Настройка автоматического монтирования при запуске системы
- Как создать GPT-диск в Linux (носитель более 2 ТиБ)
- Создаем GPT
- Создание раздела диска размером более 2 Тб в Линуксе
- Поддержка GPT в ядре
- Как создать 3 Тб раздел
- Что еще почитать по теме:
- Linux — создать GPT раздел более 2 терабайт
- Преимущества GPT
- С помощью parted
- С помощью gdisk
- С помощью fdisk
Инициализация диска с данными на сервере Linux емкостью более 2 ТБ (parted)
Ниже описано, как использовать parted для инициализации диска с данными, емкость которого превышает 2 ТБ.
Максимальная емкость диска:
Когда емкость диска больше 2 ТБ, необходимо использовать стиль раздела GPT. В Linux при GPT вместо инструмента fdisk используется parted.
Процедура инициализации диска зависит от выбранной операционной системы.
Предварительные условия
Создание и монтирование разделов
В этом примере создадим раздел на новом диске с данными с использованием GPT и parted. Также раздел будет отформатирован с помощью файловой системы ext4 , смонтирован в /mnt/sdc и настроен на автоматическое монтирование при запуске системы.
[root@ecs-centos74 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk ├─vda1 253:1 0 1G 0 part /boot └─vda2 253:2 0 39G 0 part / vdb 253:16 0 3T 0 disk
[root@ecs-centos74 ~]# parted /dev/vdb GNU Parted 3.1 Using /dev/vdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
(parted) p Error: /dev/vdb: unrecognised disk label Model: Virtio Block Device (virtblk) Disk /dev/vdb: 3299GB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags: (parted)
(parted) mklabel gpt (parted) p Model: Virtio Block Device (virtblk) Disk /dev/vdb: 3299GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags (parted)
(parted) mkpart opt 2048s 100% Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? Ignore
(parted) p Model: Virtio Block Device (virtblk) Disk /dev/vdb: 6442450944s Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 2048s 6442448895s 6442446848s opt
(parted) q Information: You may need to update /etc/fstab.
[root@ecs-centos74 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 40G 0 disk ├─vda1 253:1 0 1G 0 part /boot └─vda2 253:2 0 39G 0 part / vdb 253:16 0 3T 0 disk └─vdb1 253:17 0 3T 0 part
[root@ecs-centos74 ~]# mkfs -t ext4 /dev/vdb1 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 201326592 inodes, 805305856 blocks 40265292 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2952790016 24576 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
См.также Размеры разделов, поддерживаемые файловыми системами, различаются. Поэтому рекомендуется выбрать подходящую файловую систему в зависимости от требований.
[root@ecs-centos74 ~]# df -TH Filesystem Type Size Used Avail Use% Mounted on /dev/vda2 ext4 42G 1.5G 38G 4% / devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs tmpfs 2.0G 8.9M 2.0G 1% /run tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/vda1 ext4 1.1G 153M 801M 17% /boot tmpfs tmpfs 398M 0 398M 0% /run/user/0 /dev/vdb1 ext4 3.3T 93M 3.1T 1% /mnt/sdc
Настройка автоматического монтирования при запуске системы
В этом пункте показано, как настроить автоматическое монтирование диска при запуске сервера с помощью UUID для идентификации дисков в файле fstab . Не рекомендуется использовать имена устройств для идентификации дисков в файле, поскольку имя устройства может измениться (например, с /dev/vdb1 на /dev/vdb2) во время остановки или запуска сервера, что приведет к неправильной работе сервера после перезапуска.
- Введите команду blkid /dev/vdb1, чтобы запросить UUID раздела /dev/vdb1:
[root@ecs-test-0001 ~]# blkid /dev/vdb1 /dev/vdb1: UUID="0b3040e2-1367-4abb-841d-ddb0b92693df" TYPE="ext4"
UUID=0b3040e2-1367-4abb-841d-ddb0b92693df /mnt/sdc ext4 defaults 0 2
- В первом столбце указан UUID раздела, полученный в пункте 1.
- Во втором столбце указан каталог, в который смонтирован раздел. Можно запросить точку монтирования с помощью команды df -TH.
- В третьем столбце указан формат файловой системы раздела. Можно запросить формат файловой системы с помощью команды df -TH.
- Четвертая колонка указывает вариант монтирования раздела. Этот параметр устанавливается по умолчанию.
- В пятой колонке указан вариант резервного копирования дампа Linux.
- 0 — не использовать резервное копирование дампа Linux.
- 1 — использовать резервную копию дампа Linux.
- 0 — не использовать fsck.
- 1 — если точкой монтирования является корневой раздел (/), то этот параметр должен иметь значение 1.
- Введите umount /dev/vdb1, чтобы размонтировать раздел.
- Введите mount -a, чтобы перезагрузить все содержимое файла /etc/fstab .
- Введите mount | grep /mnt/sdc, чтобы запросить информацию о монтировании файловой системы.
Отображается информация, подобная следующей, что функция автоматического монтирования установлена:
root@ecs-test-0001 ~]# mount | grep /mnt/sdc /dev/vdb1 on /mnt/sdc type ext4 (rw,relatime,data=ordered)
Как создать GPT-диск в Linux (носитель более 2 ТиБ)
Обновлено: 18.04.2017 Опубликовано: 17.01.2017
C GPT в системах Linux работает утилита parted.
Чтобы узнать, какой именно тип диска (GPT или MBR) настроен вводим команду:
Если будет выведено предупреждение WARNING: GPT (GUID Partition Table) detected, значит используется GPT.
Также, для определения диска можно использовать gdisk, но сначала его нужно установить.
Создаем GPT
Открываем наш диск утилитой parted:
Откроется интерактивное меню утилиты — нажимаем p:
На экран будет выведена информация о разделах. Если они есть, удаляем командой rm:
* где 1 — номер раздела. Команду нужно повторить для всех разделов. Их список мы смотрели на предыдущем шаге командой p.
* если на разделе есть важная информация, ее нужно скопировать на другой носитель.(parted) mkpart primary 0 0
* где primary указывает, что раздел является основным; 0 и 0 — использовать весь диск для создания раздела, но можно использовать часть диска, например, 0 2048GB.
* где в качестве файловой системы выбрана ext4.
Для проверки, монтируем отформатированный диск в директорию /mnt:
Если есть необходимость монтировать диск при загрузке системы, прочитайте статью Автоматическое монтирование дисков в Linux
Создание раздела диска размером более 2 Тб в Линуксе
Те, кто пользуется Линуксом на десктопах, обычно имеют относительно небольшие винчестеры и разделы, в то время как для сервера необходимы большие разделы. Однако вы не сможете создать 4-х терабайтный раздел на своем RAID массиве, используя штатные инструменты Линукс. Программа fdisk не позволит вам создать раздел размером более 2 Тб.
Разрешить проблему поможет команда GNU parted, использующая GPT (GUID [Globaly Unique Identifier] Partition Table — Глобально Уникальный Идентификатор Таблицы Разделов). Она поддерживает Intel EFI/GPT таблицы разделов. GPT является стандартом для размещения разделов на физическом жестком диске. Она является частью Расширяемого Микропрограммного Интерфейса (Extensible Firmware Interface) — EFI — стандарта, предложенного Intel на смену устаревшего PC BIOS, одного из немногих сохранившихся реликтов первозданной IBM PC. EFI использует GPT так же, как BIOS использует Master Boot Record (MBR).
На следующей диаграмме приведена схема размещения GUID Partition Table. Каждый логический блок (LBA) имеет размер в 512 байт. LBA-адреса с отрицательными значениями обозначают смещения от конца тома, так что -1 обозначает последний адресуемый блок. (Рисунок заимствован из статьи [2] в Wikipedia )
Поддержка GPT в ядре
Поддержка EFI GUID Partition работает как на 32-битных, так и на 64-битных платформах. Чтобы пользоваться GPT,необходимо включить ее поддержку в ядре; если этого не сделать, то при перезагрузке сервера либо файловая система окажется немонтируемой, либо GPT таблица окажется поврежденной. Redhat Enterprise Linux / CentOS содержит поддержку GPT в ядре по умолчанию. Если же вы используете Debian или Ubuntu Linux, вам придется перекомпилировать ядро.
Установите CONFIG_EFI_PARTITION в значение y , чтобы скомпилировать ядро с поддержкой GPT.
File Systems
Partition Types
[*] Advanced partition selection
[*] EFI GUID Partition support (NEW)
.Как создать 3 Тб раздел
Один из моих клиентов имеет Raid 5 массив из 7 жестких дисков по 500 GB для хранения большого количества данных. Чтобы создать раздел, запустите в консоли GNU parted следующим образом:
# parted /dev/sdx
Вывод:
GNU Parted 1.8.1
Using /dev/sdx
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted)
Создаем новый GPT disklabel, то есть таблицу разделов (partition table):
mklabel gpt
Устанавливаем размер раздела ( в гигабайтах):
mkpart primary 0 3001G
Выходим с сохранением изменений:
quit
Форматируем файловую систему:
# mkfs.ext3 /dev/sdx1Примечание: Замените /dev/sdx настоящими именами вашего диска или RAID или блочного Ethernet устройства, скажем /dev/etherd/e0.0 . И не забудьте внести необходимые изменения в /etc/fstab.
Что еще почитать по теме:
1. How Basic Disks and Volumes Work (Немного устаревшие, но доходчиво изложенные основные концепции)
Linux — создать GPT раздел более 2 терабайт
Размеры дисков растут и старый добрый MBR не позволяет создавать разделы больше 2 ТБ. Создаём GPT раздел.
GPT — GUID Partition Table (Таблица разделов GUID). Формат размещения таблиц разделов на физическом диске.
Преимущества GPT
- GPT допускает неограниченное количество основных разделов, в то время как MBR допускает только четыре основных, а остальные — дополнительные.
- GPT позволяет создавать разделы любого размера, в то время как MBR имеет ограничение в 2 ТБ.
- GPT хранит копию данных раздела, позволяя восстановить их в случае повреждения основного заголовка GPT; MBR хранит только одну копию данных раздела в первом секторе жёсткого диска, что может привести к потере всей информации в случае повреждении информации о разделах.
- GPT хранит значения контрольной суммы для проверки, что данные не повреждены, и может выполнить необходимое восстановление из других областей диска в случае повреждения; MBR не имеет способа узнать о повреждении данных, вы можете узнать об этом только если компьютер откажется загружаться или исчезнет раздел.
С помощью parted
parted /dev/sdb --script mklabel gpt parted /dev/sdb --script mkpart primary ext4 0 0
С помощью gdisk
# gdisk /dev/sdb GPT fdisk (gdisk) version 1.0.3 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 don't want to convert your MBR partitions to GPT format! *************************************************************** Command (? for help): n Partition number (1-128, default 1): First sector (34-4194270, default = 2048) or size: Last sector (2048-4194270, default = 4194270) or size: 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): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sdb. The operation has completed successfully.
С помощью fdisk
fdisk начиная с linux-utils 2.30.2 теперь понимает GPT.
fdisk /dev/sdb Welcome to fdisk (util-linux 2.31.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. The size of this disk is 229.2 TiB (251991636836352 bytes). DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors. Use GUID partition table format (GPT). Command (m for help): g Created a new GPT disklabel (GUID: ECC64CB5-EA6C-0044-B63C-32C595B66F76). The old dos signature will be removed by a write command. Command (m for help): n Partition number (1-128, default 1): First sector (2048-492171165662, default 2048): Last sector, +sectors or +size (2048-492171165662, default 492171165662): Created a new partition 1 of type 'Linux filesystem' and of size 229.2 TiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.