partprobe

不重启的情况下重读分区

补充说明

partprobe命令 用于重读分区表,当出现删除文件后,出现仍然占用空间。可以partprobe在不重启的情况下重读分区。

语法

1partprobe(选项)(参数)

选项

1-d:不更新内核;
2-s:显示摘要和分区;
3-h:显示帮助信息;
4-v:显示版本信息。

参数

设备:指定需要确认分区表改变的硬盘对应的设备文件。

实例

使用partprobe不重启系统添加新的磁盘分区,主机自带硬盘超过300GB,目前只划分使用了3个主分区,不到70GB,如下:

1[root@localhost ~]# df -h 
2Filesystem Size Used Avail Use% Mounted on 
3/dev/sda1 29G 3.7G  24G 14% / 
4/dev/sda2 29G  22G 5.2G 81% /oracle 
5tmpfs    2.0G    0 2.0G  0% /dev/shm
 1[root@localhost ~]# cat /proc/partitions
 2major minor  #blocks  name
 3
 4   8     0  311427072 sda
 5   8     1   30716248 sda1
 6   8     2   30716280 sda2
 7   8     3    8193150 sda3
 8   8    16     976896 sdb
 9   8    32     976896 sdc
10
11…省略其他

现在需要给系统添加1个100GB的空间存放数据文件,而又不影响现有系统上业务的运行,使用fdisk结合partprobe命令不重启系统添加一块新的磁盘分区。操作步骤如下:

第1步 添加新的磁盘分区

 1[root@localhost ~]# fdisk /dev/sda
 2The number of cylinders for this disk is set to 38770.
 3There is nothing wrong with that, but this is larger than 1024,
 4and could in certain setups cause problems with:
 51) software that runs at boot time (e.g., old versions of lilo)
 62) booting and partitioning software from other OSs
 7   (e.g., DOS FDISK, OS/2 FDISK)
 8
 9command (m for help): p
10
11Disk /dev/sda: 318.9 GB, 318901321728 bytes
12255 heads, 63 sectors/track, 38770 cylinders
13Units = cylinders of 16065 * 512 = 8225280 bytes
14
15   Device Boot      Start         End      Blocks   id  System
16/dev/sda1   *           1        3824    30716248+  83  Linux
17/dev/sda2            3825        7648    30716280   83  Linux
18/dev/sda3            7649        8668     8193150   82  Linux swap / Solaris
19
20Command (m for help): n
21Command action
22   e   extended
23   p   primary partition (1-4)
24p
25Selected partition 4
26First cylinder (8669-38770, default 8669):
27Using default value 8669
28last cylinder or +size or +sizeM or +sizeK (8669-38770, default 38770): +100G   
29Command (m for help): w
30The partition table has been altered!
31
32Calling ioctl() to re-read partition table.
33
34WARNING: Re-reading the partition table failed with error 16: 
35
36Device or resource busy.
37The kernel still uses the old table.
38The new table will be used at the next reboot.
39Syncing disks.

第2步 使用工具partprobe让kernel读取分区信息:

1[root@localhost ~]# partprobe

使用fdisk工具只是将分区信息写到磁盘,如果需要mkfs磁盘分区则需要重启系统,而使用partprobe则可以使kernel重新读取分区信息,从而避免重启系统。

第3步 格式化文件系统:

 1[root@localhost ~]# mkfs.ext3 /dev/sda4
 2mke2fs 1.39 (29-May-2006)
 3Filesystem label=
 4OS type: Linux
 5Block size=4096 (log=2)
 6Fragment size=4096 (log=2)
 712222464 inodes, 24416791 blocks
 81220839 blocks (5.00%) reserved for the super user
 9First data block=0
10Maximum filesystem blocks=4294967296
11746 block groups
1232768 blocks per group, 32768 fragments per group
1316384 inodes per group
14Superblock backups stored on blocks:
15        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 
16    2654208, 4096000, 7962624, 11239424, 20480000, 23887872
17
18Writing inode tables: done
19Creating journal (32768 blocks): done
20Writing superblocks and filesystem accounting information:
21
22done
23
24This filesystem will be automatically checked every 26 mounts or
25180 days, whichever comes first.  Use tune2fs -c or -i to override.
26[root@localhost ~]#

第4步 mount新的分区/dev/sda4

1[root@localhost ~]# e2label  /dev/sda4 /data
2[root@localhost ~]# mkdir /data
3[root@localhost ~]# mount /dev/sda4 /data
4[root@localhost ~]# df
5Filesystem           1K-blocks      Used Available Use% Mounted on
6/dev/sda1             29753556   3810844  24406900  14% /
7/dev/sda2             29753588  11304616  16913160  41% /oracle
8tmpfs                  2023936         0   2023936   0% /dev/shm
9/dev/sda4             96132968    192312  91057300   1% /data

使用partprobe可以不用重启系统即可配合fdisk工具创建新的分区。

来源:https://github.com/jaywcjlove/linux-command

最后修改于: Wednesday, January 31, 2024
欢迎关注微信公众号,留言交流。

相关文章:

翻译: