Во время выполнения различных задач по администрированию системы может понадобится работать с файловой системой Linux, форматировать разделы, изменять их размер конвертировать файловые системы, выполнить дефрагментацию в Linux или восстановление файловых систем.
Многие из этих действий выполняются в графическом интерфейсе, многие и вовсе автоматически. Но может возникнуть ситуация, в которой придется делать все через терминал. Также при администрировании удаленных серверов работать с ними приходится только через ssh, а это означает недоступность графического интерфейса.
В этой статье мы рассмотрим как выполняется работа с файловой системой Linux в терминале. За основу возьмем семейство файловых систем ext2/3/4, так как они самые распространенные среди большого многообразия дистрибутивов Linux.
Основные команды
Для управления файловой системой ext в Linux используется целый набор команд из пакета e2progs. Сюда входят как команды для управления флагами файлов, создания и изменения файловых систем, так и утилиты для отладки файловой системы.
Рассмотрим основные утилиты, которые будем использовать:
- badblocks — если у вас старый жесткий диск и на нем накопилось много битых блоков, вы можете с помощью этой утилиты пометить их все на уровне файловой системы, чтобы больше не использовать.
- e2label — позволяет изменить метку раздела с файловой системой ext.
- fsck — проверка файловой системы linux и исправление найденных ошибок
- mkfs — позволяет создать файловую систему Linux.
- resize2fs — изменить размер раздела с файловой системой
- tune2fs — позволяет изменить файловую систему Linux, настроить ее параметры.
А теперь будет рассмотрена работа с файловой системой linux на примерах.
Перед тем как переходить к работе с реальным жестким диском важно попрактиковаться. Если сменить метку или проверить на битые сектора можно и рабочий диск, то создавать новую файловую систему, изменять ее размер, рискуя потерять данные на реальном диске не рекомендуется. Можно отделить небольшой раздел диска для экспериментов с помощью Gparted и выполнять все действия в нем. Допустим, у нас этот раздел будет называться /dev/sda6.
Создание файловой системы
Создать файловую систему linux, семейства ext, на устройстве можно с помощью команды mkfs. Ее синтаксис выглядит следующим образом:
sudo mkfs -t тип устройство
Доступны дополнительные параметры:
- -с — проверить устройство на наличие битых секторов
- -b — размер блока файловой системы
- -j — использовать журналирование для ext3
- -L — задать метку раздела
- -v — показать подробную информацию о процессе работы
- -V — версия программы
Создаем файловую систему на нашем устройстве. Будем создавать ext3:
sudo mkfs -t ext4 -L root /dev/sda6
Creating filesystem with 7847168 4k blocks and 1962240 inodes
Filesystem UUID: 3ba3f7f5-1fb2-47af-b22c-fa4ca227744a
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Изменение метки файловой системы
Утилита e2label позволяет изменить или посмотреть метку раздела диска. Принимает всего два параметра — устройство и новую метку если нужно.
Смотрим метку:
sudo e2label /dev/sda6
root
Устанавливаем новую:
sudo e2label /dev/sda6 root1
Настройка файловой системы linux
Различные параметры файловой системы, такие как размер блока данных, иноды или зарезервированное место под данные пользователя root можно настроить. Для этого существует утилита tune2fs.
Синтаксис команды очень прост:
$ tune2fs опции устройство
Поддерживаются следующие опции:
- -j — создать файл журнала. Позволяет превратить файловую систему ext2 в ext3.
- -J — настроить параметры журнала
- -l — получить содержимое суперблока
- -L — изменить метку раздела
- -m — изменить процент дискового пространства, зарезервированного для суперпользователя
- -M — изменить последнюю папку монтирования
- -U — задать UUID файловой системы
- -C — изменить значение счетчика монтирования
- -T — изменить последнюю дату проверки файловой системы
- -с — изменить периодичность проверок файловой системы с помощью fsck
- -O — изменить опции файловой системы.
Изменить размер зарезервированного места для суперпользователя до пяти процентов:
sudo tune2fs -m 5 /dev/sda6
Setting reserved blocks percentage to 5% (392358 blocks)
Посмотреть информацию из суперблока, эта команда показывает всю доступную информацию параметрах файловой системы:
Filesystem volume name: root
Last mounted on: /
Filesystem UUID: 3ba3f7f5-1fb2-47af-b22c-fa4ca227744a
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg spar
se_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Изменить счетчик количества монитрований:
tune2fs -C 0 /dev/sda6
Setting current mount count to 0
Думаю тут смысл понятен, нужно только немного со всем этим поэкспериментировать.
С помощью опции -O мы вообще можем превратить нашу ext3 в ext4 следующей командой:
sudo tune2fs -O extents,uninit_bg,dir_index
После этого действия нужно выполнить проверку файловой системы на ошибки в fsck. Подробнее об этом поговорим ниже.
sudo fsck -np /dev/sda6
Таким образом вы можете изменить файловую систему linux, и настроить по своему усмотрению любые ее параметры.
Изменение размера файловой системы Linux
Раньше такая функция поддерживалась в утилите parted, но потом ее убрали и для этого действия приходится использовать утилиту из набора e2fsprogs — resize2fs.
Запустить утилиту очень просто. Ей нужно передать всего два параметра:
$ resize2fs [опции] устройство размер
Доступны также опции:
- -M уменьшить файловую систему до минимального размера
- -f — принудительное изменение, не смотря на потерю данных
- -F — очистить буфер файловой системы
Размер передается, как и во многих других утилитах, целым числом с указанием единиц измерения, например, 100М или 1G.
Для примера уменьшим размер нашего раздела до 400 Мегабайт:
sudo resize2fs /dev/sda6 400M
Resizing the filesystem on /dev/sda7 to 102400 (4k) blocks.
The filesystem on /dev/sda7 is now 102400 blocks long
Проверка файловой системы Linux
При неправильном отключении носителей или неожиданном отключении питания, файловая система Linux может быть повреждена. Обычно проверка корневой файловой системы и домашнего каталога на ошибки выполняется во время загрузки. Но если эта проверка не была выполнена или нужно поверить другой носитель, придется все делать вручную. Для этого есть утилита fsck.
Синтаксис fsck:
$ fsck [опции] устройство
Опции программы:
- -p — автоматическое восстановление
- -n — только проверка, без восстановления
- -y — ответить да на все запросы программы
- -с — проверить на битые сектора (аналог badblocks
- -f — принудительная проверка, даже если раздел помечен как чистый
- -j — внешний журнал файловой системы
Проверка файловой системы Linux выполняется такой командой, проверим диск /dev/sda6, заметьте, что диск должен быть не примонтирован:
sudo fsck -a /dev/sda6
root: clean, 11/32704 files, 37901/102400 blocks
Дефрагментация файловой системы
Хотя и фрагментация нехарактерное явление для файловых систем семейства ext, при очень интенсивном использовании может накапливаться фрагментированость, что будет замедлять работу файловой системы. Для дефрагментации можно использовать стандартную утилиту e4defrag. Просто выполните:
e4defrag /dev/sda6
Чтобы проверить нужна ли дефрагментация в Linux выполните эту же команду с опцией -c:
Total/best extents 26247/24953
Average size per extent 1432 KB
Fragmentation score 0
[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
This device (/dev/sda6) does not need defragmentation.
Done.
В поле Fragmentation score отображен процент фрагментации, как видите, у меня 0, нормой считается до 30, 31-55 небольшие проблемы, и больше 56 — нужна дефрагментация.
Выводы
В одной из предыдущих статей мы рассмотрели как выполняется разметка диска с помощью parted. Из этой статьи вы узнали все что нужно о работе с файловой системой. Теперь у вас не возникнет проблем если у вас вдруг не будет доступа к графическим утилитам и нужно будет исправлять ошибки или настраивать файловую систему. Если остались вопросы, спрашивайте в комментариях!
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Обновлено: 09.01.2023
Опубликовано: 22.06.2017
В инструкции рассмотрены сценарии расширения дискового пространства разделов в Linux без потери информации.
Принцип увеличения диска:
- Расширение раздела.
- Изменение размера файловой системы.
В зависимости от типа раздела и файловой системы, действия различаются.
Любая работа с диском несет риск потери информации. Перед началом работ убедитесь в наличие резервных копий ценных данных.
Расширение разделов
Обычных
LVM
Изменение размера файловой системы
Использование GParted
Шаг 1. Расширение раздела
Мы рассмотрим варианты работы с обычными томами (разделами) и томами LVM. Проверить, какой тип раздела у нас используется можно командой:
lsblk
Нам интересны варианты part и lvm.
Обычные тома (part)
Допустим, есть диск /dev/sdb и раздел /dev/sdb2, который нужно увеличить. Разберем два подхода, сделать это.
1. С помощью утилиты growpart (без отмонтирования раздела)
Данная утилита позволяет увиличить размер слайса без необходимости его отмонтировать. Это очень удобно для работы с корневыми разделами. Данная утилита не установлена в системе. В зависимости от последней наши действия будут различаться.
а) Для систем DEB:
apt install cloud-guest-utils
б) Для систем RPM:
yum install cloud-utils-growpart
Если наш диск имеет разметку GPT, то потребуется установить также утилиту gdisk.
а) Для DEB:
apt install gdisk
б) Для RPM:
yum install gdisk
Установка growpart завершена. Идем дальше.
Для расширения раздела /dev/sdb2 вводим команду:
growpart /dev/sda 2
Мы должны увидеть что-то на подобие:
CHANGED: partition=2 start=4096 old: size=20965376 end=20969472 new: size=41938910 end=41943006
Готово.
2. С помощью утилиты fdisk/parted (требуется отмонтировать раздел)
Данный способ удобнее тем, что не нужно устанавливать дополнительных утилит, но он потребует отмонтирование раздела. Это можно сделать командой:
umount /dev/sdb2
В случае работы с корневой директорией, отмонтировать ее не получиться. В таком случае необходимо загрузить компьютер с Windows LiveCD или GParted Live.
Подключаемся утилитой fdisk к /dev/sdb:
fdisk /dev/sdb
Если мы работаем с разделом более чем 2Тб, используем утилиту parted.
Смотрим номера разделов:
: p
Удаляем раздел (не переживайте — все данные сохраняются):
: d
: 2
* в моем примере, раздел для удаления на второй позиции.
Создаем новый раздел:
: n
Первичный (primary):
: p
Номер раздела — 2:
: 2
На запрос начального и конечного секторов просто нажимаем Enter.
Если раздел был загрузочный, добавляем соответствующий флаг:
: a
Еще раз проверяем, что получилось:
: p
Сохраняем изменения:
: w
LVM
LVM-тома расширяются на лету, даже для корневых разделов. В данном примере, работаем с /dev/sda.
Открываем диск утилитой fdisk:
fdisk /dev/sda
* напомню, что при работе с диском 2Тб и более, следует использовать утилиту parted.
Создаем еще один раздел:
: n
Первичный:
: p
Номер раздела оставляем тот, который предлагает система (просто нажимаем Enter).
Первый и последний сектора также оставляем по умолчанию для использования всего дискового пространства (еще два раза Enter).
Задаем тип раздела:
: t
Выбираем номер раздела (в моем примере создавался раздел 3):
: 3
Командой L можно посмотреть список всех типов, но нас интересует конкретный — LVM (8e):
: 8e
Сохраняем настройки:
: w
Проинформируем систему, что в таблице разделов произошли изменения:
partprobe
Создаем физический том из нового раздела:
pvcreate /dev/sda3
Смотрим наши Volume Group и для нужного добавляем созданный том:
vgdisplay
vgextend vg_centos /dev/sda3
* в моем примере группа томов LVM называется vg_centos
Смотрим LVM-разделы и расширяем пространства для нужного:
lvdisplay
lvextend -l +100%FREE /dev/vg_centos/lv_root
* данная команда расширяем LVM-раздел /dev/vg_centos/lv_root, используя все свободное пространство (100%FREE).
Шаг 2. Изменение размера для файловой системы
После того, как на предыдущем шаге мы расширили раздел, система по-прежнему будет видеть старый по объему диск. Чтобы это исправить, необходимо выполнить команду по изменению размера файловой системы. В зависимости от последней, команды различаются.
Посмотреть файловую систему:
df -T
ext2/ext3/ext4:
resize2fs /dev/vg_centos/lv_root
XFS:
xfs_growfs /dev/sda2
Reiserfs:
resize_reiserfs /dev/sdb
* обратите внимание, что в данных примерах используются различные устройства.
Если раздел был отмонтирован, монтируем его, например:
mount /dev/sda2 /mnt
Проверяем, что настройки применились:
df -h
Увеличение разделов с Gparted
Если работы выполняются на системе с графическим интерфейсом или есть возможность перезагрузить сервер и загрузиться с LiveCD, можно воспользоваться простым средством — утилитой Gparted, которая позволяем менять размер разделов мышкой.
Запускаем утилиту — выбираем диск, с которым будем работать — кликаем правой кнопкой по разделу, который хотим увеличить и выбираем Resize/Move:
В открывшемся окне с помощью мышки или форм меняем размер раздела:
Нажимаем кнопку Resize/Move.
Проверяем изменения в окне программы и сохраняем настройки кнопкой «Apply All Operations»:
Частая задача в моей текущей работе — увеличить объем раздела на виртуальной машине без выключения машины (на горячую). Под рукой постоянно держу небольшой cheatsheet (шпаргалку) по работе с разделами в Linux.
План действий
Перед изменением размеров разделов рекомендуется отмонтировать диск. Если диск системный, то нужно загружаться в recovery. Я делаю это на горячую на свой страх и риск.
- Делаем бекап машины! (не могу не написать этого)
- Увеличиваем объем диска в гипервизоре (этот пункт не затрагиваем)
- Сканируем диски в системе
- Меняем размер раздела
- Увеличиваем файловую систему
Сканируем диски в системе
После увеличения объема диска есть вероятность того, что в системе мы новый объем сразу не увидим. Проверяем. Я использую команду lsblk
:
root@hostname.infra.local:/home/user# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
loop0 7:0 0 99,2M 1 loop /snap/core/10908
loop2 7:2 0 99,2M 1 loop /snap/core/10958
sda 8:0 0 32G 0 disk
├─sda1 8:1 0 1M 0 part
└─sda2 8:2 0 32G 0 part /
sdb 8:16 0 4T 0 disk <<<--------
└─sdb1 8:17 0 4T 0 part /pgsqldb <<<--------
sdc 8:32 0 109,8G 0 disk
└─sdc1 8:33 0 109,8G 0 part /temp_dump
sr0 11:0 1 829M 0 rom
Стрелкой я выделил диск, который мы увеличили до 5Т, но увеличенный объем не видим.
Нужно заставить систему просканировать диск.
echo 1 > /sys/block/sdb/device/rescan
(вместо sdb — нужный диск)
Сразу после этого снова выполняем lsblk
:
sdb 8:16 0 5T 0 disk
└─sdb1 8:17 0 4T 0 part /pgsqldb
То что нужно. Перейдем к увеличению раздела.
Меняем размер раздела
Вообще, мы можем для любых вариантов использовать программу parted, но я покажу еще способ с программой fdisk. Он подходит для разделов объемом менее 4 терабайт.
Здесь будет несколько вариантов:
- у нас обычная разметка диска или LVM
- у нас диск c таблицей разметки GPT более 4 терабайт объемом
Рекомендую на этом этапе сначала выполнить команду parted -l
, которая может показать ошибку и предложить опции Fix\Ignore
:
Warning: Not all of the space available to /dev/sdb appears to be used, you can fix the GPT to use all of the space (an extra 41943040 blocks) or continue with the
current setting?
Fix/Ignore? Fix
ПишемFix
.
Обычные разделы или LVM
Чаще всего я пользуюсь программой fdisk. Можно посмотреть все наши дискиразделы: fdisk -l
.
Так как меняем размер раздела на диске sdb
, то и заходим в fdisk /dev/sdb.
Вводим команду p
и получаем наш текущий список разделов:
Device Start End Sectors Size Type
/dev/sdb1 2048 8589843750 8589841703 4T Linux filesystem
Удаляем раздел /dev/sdb1
: вводим команду d
.
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
Если разделов на диске больше, программа предложит ввести цифру нужного раздела.
Никаких изменений на диск мы еще не сделали! Не боимся.
Создаем новый раздел n
:
Command (m for help): n
Partition number (1-128, default 1):
First sector (34-8589934558, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-8589934558, default 8589934558):
Created a new partition 1 of type 'Linux filesystem' and of size 4 TiB.
Обратите внимание, программа сообщает, что при создании раздела она нашла запись ext4 в разделе и предлагает удалить ее. Не удаляем. Нет! Не надо!
Partition #1 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: N
Опять вводим команду p
, чтобы посмотреть новую информацию:
Device Start End Sectors Size Type
/dev/sdb1 2048 10751953125 10751951078 5T Linux filesystem
Ну вроде все хорошо. Теперь вводим команду w
(write). После этого ваши изменения запишутся на диск.
Большой диск GPT
Если по предыдущему пункту попробовать отресайзить диск большого объема (больше 4 терабайт), то появится ошибка Value out of range
. Придется воспользоваться программой parted.
Делаем parted /dev/sdb
и смотрим текущие разделы командой print
:
(parted) print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 3299GB 3299GB ext4 primary
Меняем размер раздела командой resizepart 1
:
(parted) resizepart 1
Warning: Partition /dev/sdb1 is being used. Are you sure you want to continue?
Yes/No? Yes
End? [3299GB]? 4398GB
На вопрос End?
пишем новый объем раздела. Если хотим расширить его до максимума, то цифры можно подсмотреть выше в выводе команды print
: Disk /dev/sdb: 4398GB
Здесь изменения происходят сразу, поэтому при отсутствии вывода после предыдущей команды можно делать quit.
Увеличение файловой системы
Тут должно быть все просто. Разница только между разметками: обычная или LVM.
Обычная разметка
Просто выполняем команду resize2fs /dev/sdb1
:
root@hostname.infra.local:/home/user# resize2fs /dev/sdb1
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/sdb1 is mounted on /pgsqldb; on-line resizing required
old_desc_blocks = 384, new_desc_blocks = 512
The filesystem on /dev/sdb1 is now 1073730212 (4k) blocks long.
LVM
Вообще, LVM позволяет добавлять физические диски (PV — physical volume) в VG — volume group, а в них создавать логические тома (LV — logical volume) примерно по такой схеме:
sda1 sda2 sdb sdc <-- PV
| | | |
| | | |
+--------+- VG00 -+-------+ <-- VG
|
+-------+-------+---------+
| | | |
root usr home var <-- LV
| | | |
ext3 reiserfs reiserfs xfs <-- Файловые системы
Следовательно, можно не ресайзить диск в гипервизоре, а добавить еще один. Затем добавить новый PV в VG.
Но мы идем путем джедая увеличения диска, поэтому в случае с LVM к ресайзингу файловой системы добавляется несколько команд.
Для просмотра информации о PV, VG, LV существуют команды pvs
, vgs
, lvs
. И их более подробные варианты pvscan
, vgscan
, lvscan
:
root@hostname:/home/user# pvs
PV VG Fmt Attr PSize PFree
/dev/sda5 t-ubuntu16-vg lvm2 a-- 49.52g 0
root@hostname:/home/user# vgs
VG #PV #LV #SN Attr VSize VFree
t-ubuntu16-vg 1 2 0 wz--n- 49.52g 0
root@hostname:/home/user# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root t-ubuntu16-vg -wi-ao---- 48.52g
swap_1 t-ubuntu16-vg -wi-ao---- 1.00g
- Меняем размер PV
pvresize /dev/sda1
- Увеличиваем размер LV до максимального
lvextend -l +100%FREE /dev/mapper/vg1-dsads-lv-root
- Увеличиваем файловую систему на нужном разделе
resize2fs /dev/mapper/vg1-dsads-lv-root
Итог
Смотрим, что у нас получилось df -h
:
root@hostname.infra.local:/home/user# df -h
Filesystem Size Used Avail Use% Mounted on
udev 38G 0 38G 0% /dev
tmpfs 7,5G 4,4M 7,5G 1% /run
/dev/sda2 32G 24G 6,3G 79% /
/dev/sdb1 5,0T 3,3T 1,5T 71% /pgsqldb <<<-----
Видим новый объем. Все счастливы и довольны.
TL;DR
Кратко cheatsheet у меня выглядит так:
Смотрим, видит ли система новое место на дисках: lsblk
, parted -l
, fdisk -l
Если не видит: echo 1 > /sys/block/sda/device/rescan
(вместо sda — нужный диск) fdisk /dev/sda
(if sda)
p
— просмотр разделов
d
— удалить раздел который расширяешь
n
— создать новый раздел (создастся с тем индексом, который удалишь)
В большинстве случаев везде ответы будут по умолчанию. Когда спросит про затирание метки — НЕ удалять
p
— проверить что разделы имеют тот же вид что и в начале
w
— записать изменения на диск
resize2fs /dev/sda1
(номер — индекс раздела)
Если LVM:
pvresize /dev/sda1
lvextend -l +100%FREE /dev/mapper/vg1-dsads-lv-root
resize2fs /dev/mapper/vg1-dsads-lv-root
Если ошибка с gpt
parted -l
→ Fix
💡 Подписывайтесь на Телеграм-канал, чтобы не пропускать новые статьи
- Телеграм канал 📺
- Чат 🤘🏼
Примечание. Изменение размера файловой системы на разделе диска может быть опасным и привести к потере данных. Убедитесь, что у вас есть резервная копия, прежде чем выполнять действия, описанные ниже.
Предостережения
1. Файловая система, размер которой вы хотите изменить, должен находиться на последнем разделе диска. В этом случае потери данных не происходит, поскольку мы воссоздаем раздел, не уничтожая фактические данные на нем.
2. Если это не последний раздел, вы должны уничтожить данные и воссоздать новый раздел с желаемым размером.
Расширение файловой системы на основе разделов
1. Сначала проверьте существующий размер файловой системы.
# # df -hP /data01 Filesystem Size Used Avail Use% Mounted on /dev/nvme1n1p1 1014M 33M 982M 4% /data01
# mount | grep -w data01 /dev/nvme1n1p1 on /data01 type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
Как видно из приведенного выше вывода команды «mount», файловая система раздела – «xfs».
2. Запишите информацию о разделе и диске с помощью команды «parted».
Убедитесь, что вы указали имя диска, а не имя раздела в приведенной ниже команде:
# parted /dev/nvme1n1 u s p Model: NVMe Device (nvme) Disk /dev/nvme1n1: 4194304s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 2048s 2099199s 2097152s primary xfs
Из приведенного выше вывода видно, что размер раздела (2099199 с) меньше размера диска (4194304 с).
Так что есть место для увеличения раздела.
3. Сначала размонтируйте файловую систему.
4. Удалите раздел с файловой системой ‘/data01’.
# parted /dev/nvme1n1p1 rm 1 Information: You may need to update /etc/fstab.
Убедитесь, что раздел удаляется.
У меня был только один раздел на диске, поэтому сейчас я не вижу этого раздела.
# parted /dev/nvme1n1 u s p Model: NVMe Device (nvme) Disk /dev/nvme1n1: 4194304s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags
5. Теперь давайте воссоздадим раздел большего размера.
Обратите внимание на начальный сектор с шага 2, то есть 2048 с. Мы увеличим раздел с 1 ГБ до 1,5 ГБ.
# parted -s /dev/nvme1n1 mkpart primary 2048s 1.5G
Проверьте новый размер раздела еще раз.
# parted /dev/nvme1n1 u s p Model: NVMe Device (nvme) Disk /dev/nvme1n1: 4194304s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 2048s 2930687s 2928640s primary
6. Нам нужно запустить fsck на только что созданном разделе.
Также обратите внимание, что здесь мы не создаем файловую систему, так как она уже присутствует в разделе.
Поскольку мы используем файловую систему XFS, используйте команду «xfs_repair» вместо «e2fsck».
# xfs_repair /dev/nvme1n1p1 Phase 1 - find and verify superblock... bad primary superblock - bad magic number !!! attempting to find secondary superblock... .................................................................................................................................................................................................................................................found candidate secondary superblock... verified secondary superblock... writing modified primary superblock sb realtime bitmap inode 18446744073709551615 (NULLFSINO) inconsistent with calculated value 65 resetting superblock realtime bitmap ino pointer to 65 sb realtime summary inode 18446744073709551615 (NULLFSINO) inconsistent with calculated value 66 resetting superblock realtime summary ino pointer to 66 Phase 2 - using internal log - zero log... - scan filesystem freespace and inode maps... sb_icount 0, counted 64 sb_ifree 0, counted 61 sb_fdblocks 259568, counted 259560 - found root inode chunk Phase 3 - for each AG... - scan and clear agi unlinked lists... - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno = 0 - agno = 1 - agno = 2 - agno = 3 Phase 5 - rebuild AG headers and trees... - reset superblock... Phase 6 - check inode connectivity... - resetting contents of realtime bitmap and summary inodes - traversing filesystem ... - traversal finished ... - moving disconnected inodes to lost+found ... Phase 7 - verify and correct link counts... Note - stripe unit (0) and width (0) were copied from a backup superblock. Please reset with mount -o sunit=,swidth= if necessary done
7. Расширьте файловую систему, используя команду «xfs_growfs».
Также перед запуском этой команды нам нужно смонтировать файловую систему, иначе вы получите ошибку, как позано ниже:
xfs_growfs /dev/nvme1n1p1 xfs_growfs: /dev/nvme1n1p1 is not a mounted XFS filesystem
# mount /dev/nvme1n1p1 /data01
# xfs_growfs /dev/nvme1n1p1 meta-data=/dev/nvme1n1p1 isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 262144 to 366080
8. Проверьте новый размер точки монтирования.
# df -hP /data01 Filesystem Size Used Avail Use% Mounted on /dev/nvme1n1p1 1.4G 33M 1.4G 3% /data01