🐧 Как изменить размер (расширить) файловую систему на основе разделов в Linux

by itisgood

Примечание. Изменение размера файловой системы на разделе диска может быть опасным и привести к потере данных. Убедитесь, что у вас есть резервная копия, прежде чем выполнять действия, описанные ниже.

Предостережения

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. Сначала размонтируйте файловую систему.
# umount /data01
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

You may also like

Leave a Comment