GNU/Linux >> Linux の 問題 >  >> Linux

Linux でパーティションベースのファイルシステムのサイズを変更 (拡張) する方法

注意 :ディスク パーティション上のファイル システムのサイズ変更は危険であり、データが失われる可能性があります。以下に概説する手順を実行する前に、バックアップが作成されていることを確認してください。

注意

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

上記の出力から、パーティション サイズ (2099199s) がディスク サイズ (4194304s) より小さいことがわかります。したがって、パーティションを増やす余地があります。

3. 最初にファイルシステムをアンマウントします。

# umount /data01

4. ファイルシステム「/data01」を持つパーティションを削除します。

# parted /dev/nvme1n1p1 rm 1
Information: You may need to update /etc/fstab.

パーティションが削除されているかどうかを確認します。ディスクには 1 つのパーティションしかなかったので、今はパーティションは表示されないはずです。

# 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 の開始セクタ、つまり 2048s に注意してください。パーティションを 1GB から 1.5GB に増やします。

# 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 ファイルシステムを使用しているため、「e2fsck」の代わりに「xfs_repair」コマンドを使用してください。

# 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


Linux
  1. Linuxでディスクiノード数を増やす方法

  2. Linuxでファイルの名前を変更するにはどうすればよいですか?

  3. Linux でファイルシステムを作成してマウントする方法

  1. Linux でファイルシステムをマウントおよびアンマウントする方法

  2. Linux で LVM スワップ パーティションを拡張する方法

  3. Linuxでファイルシステムの種類を確実に判断する方法は?

  1. Linuxでファイルを移動する方法

  2. Linuxでディスクをパーティション分割する方法

  3. Linuxでディスクパーティションをフォーマットする方法