partproble在RHEL 6下无法更新分区信息

在RHEL5.x版本下面,在添加磁盘分区等操作后,一直使用partproble命令使内核重新读取分区表信息,从而不用重新启动。但是最近在RHEL 6(Red Hat Enterprise Linux Server release 6.6 (Santiago))下,使用partprobe出现错误。

[[email protected] ~]# lsof /dev/sda
[[email protected] ~]# partprobe /dev/sda

Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.

后面查了一下资料发现,在官方文档How to use a new partition in RHEL6 without reboot中有如下介绍

partprobe was commonly used in RHEL 5 to inform the OS of partition table changes on the disk. In RHEL 6, it will only trigger the OS to update the partitions on a disk that none of its partitions are in use (e.g. mounted). If any partition on a disk is in use, partprobe will not trigger the OS to update partitions in the system because it is considered unsafe in some situations.

翻译如下:

partprobe通常在RHEL 5中用来通知操作系统的磁盘上的分区表变化或更改。在RHEL 6中,只有当那些磁盘上任何分区都没有在使用的磁盘下(例如,mounted)它才会触发OS去更新磁盘的分区表。如果磁盘上的任何分区正在使用中,partprobe命令不会触发操作系统去更新分区表的信息,因为在某些情况下,它被认为是不安全的。

解决方案:

1:重启操作系统。万能的重启,哈哈,不过,在很多情况下是不现实的,因为重启会中断业务,重启只能是下下策。

2:使用partx命令来解决这个。

[[email protected] ~]# partx -l /dev/sdb
# 1:        63-314568764 (314568702 sectors, 161059 MB)

# 2: 314568765-356514479 ( 41945715 sectors,  21476 MB)

# 3:         0-       -1 (        0 sectors,      0 MB)

# 4:         0-       -1 (        0 sectors,      0 MB)

[[email protected] ~]# 

[[email protected] ~]# partx -v -a /dev/sdb

device /dev/sdb: start 0 size 356515840

gpt: 0 slices

dos: 4 slices

# 1:        63-314568764 (314568702 sectors, 161059 MB)

# 2: 314568765-356514479 ( 41945715 sectors,  21476 MB)

# 3:         0-       -1 (        0 sectors,      0 MB)

# 4:         0-       -1 (        0 sectors,      0 MB)

BLKPG: Device or resource busy

error adding partition 1

BLKPG: Device or resource busy 这个提示信息是正常,表示分区1在分区2添加前已经存在了。

Read disk and try to add all partitions to the system:

Raw

# partx -v -a /dev/sdb
device /dev/sdb: start 0 size 2097152
gpt: 0 slices
dos: 4 slices
# 1:        63-   505007 (   504945 sectors,    258 MB)
# 2:    505008-  1010015 (   505008 sectors,    258 MB)
# 3:         0-       -1 (        0 sectors,      0 MB)
# 4:         0-       -1 (        0 sectors,      0 MB)
BLKPG: Device or resource busy
error adding partition 1

(These last 2 lines are normal in this case because partition 1 is already added in the system before partition 2 is added)

例如在添加、读取分区表信息后,再执行下面命令,就会发现分区2也报“BLKPG: Device or resource busy error adding partition 2”

检查分区节点信息。

[[email protected] ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1  /dev/sdb2

[[email protected] ~]# 

另外,我在测试中,发现也可以使用下面方法里解决,例如新增的分区是/dev/sdc2/ /dev/sdb2/ /dev/sda4,那么就可以执行如下命令解决问题。

[[email protected] ~]# partx -a /dev/sdc2 /dev/sdc
 

[[email protected] ~]# partx -a /dev/sdb2 /dev/sdb

 

[[email protected] ~]# partx -a /dev/sda4 /dev/sda

参考资料:

https://access.redhat.com/node/57542

时间: 07-09

partproble在RHEL 6下无法更新分区信息的相关文章

Windows xp 下删除ubuntu分区后恢复

1. 发生情形 在windows下的计算机管理中删除了一个ubuntu10.04所在分区,结果所有Linux分区变成一片绿色,变成了可用空间.对分区表进行操作尽量不要用磁盘管理,disk Genius(diskman)非常好用,对分区表进行操作可以预览效果,退出时不保存分区信息就不会更新磁盘分区表.当然你也可以用它的备份分区表的功能. 2. 处理思路 之前安装ubuntu时为了腾出空间也曾经发生删除最后一个磁盘别的分区也跟着消失的问题.原因可能是分区链已经错乱.不过现在要处理的问题是如何找回Li

Ubuntu与Win7双系统下,改变分区导致error:no such partition grub rescue>

我电脑装的是windows和ubuntu双系统.在windows下改变分区,包括新建分区.删除分区.合并分区等操作,会造成Ubuntu的grub找不到分区,以致进入grub rescue模式.这时可以通过如下方式恢复.摘抄http://www.cnblogs.com/ZhangZhifeng1988/archive/2011/12/19/2294018.html如下: 上网找了很多方法问题终于解决了.网上的内容大概有那么三种,一种是用LiveCD,只有挂了的这一台电脑,在公司里也懒得再下系统刻C

Linux下的GPT分区

GPT分区 这是另外一种分区,针对MBR分区,它有很多优点: (1)几乎突破了分区个数的限制. 在GPT分区表中最多可以支持128个主分区. (2)单个分区容量几乎没有限制. 单个分区最大支持1EB容量. 因此GPT分区中,主分区和扩展分区,逻辑分区的概念已经很模糊了.甚至没必要这么叫.其实我们知道 扩展分区之所以存在,意义就是为了解决MBR中分区个数的限制问题.既然在GPT中,分区个数几乎没有了 限制,那么这些概念当然就模糊起来了. 好了,废话不多说,讲解GPT分区的步骤吧. ++++++++

【翻译自mos文章】rhel 5下禁用SElinux的方法

rhel 5下禁用SElinux的方法: 参考自: How to Disable or set SELinux to Permissive mode (文档 ID 457458.1) Edit /etc/selinux/config ?Change the SELINUX value to "SELINUX=disabled". ?Reboot the server. 在RHEL5.8 的 文本安装过程中,是没有关于selinux的设置的,因此在一个人安装os后,另外一个人去安装ora

在windows下如何更新vundle?

本文出自Svitter的blog 更新Vundle的时候,无论是输出BundleInstall!还是PluginInstall!都会调用系统的git,所以必须安装git才能达到目的更新插件. git的官方站点点击打开链接 下载完成输入:BundleInstall!或者:PluginInstall!即可. 方便快捷. 在windows下如何更新vundle?,布布扣,bubuko.com

redhat6 lvm 下缩小根分区

说明: 不是根分区都可是在线扩容和缩小 根分区是可以在线扩容,但不可以在线缩小 1.Linux系统进入救援模式 依次选择: 欢迎界面 ---------- Rescue installed system Chose a Language  -------------  English Keyboard Type  ---------   us Rescue Method ------------------  Local CD/DVD Setup Networking -------------

linux下挂载NTFS分区错误修复

今天在linux下打开win的NTFS硬盘总是提示出错了,而且是全部的NTFS盘都出错,其中sda1错误显示如下: Error mounting /dev/sda1 at /media/wangbo/24F02EECF02EC3C0: Command-line `mount -t "ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,dmask=0077,fmask=0177" "/dev/sd

Unix系统下对swap分区大小修改

随着科技不断的进步,内存大小在不断的加大,使得swap分区的用处越来越小.所以在实际生产环境中有时需要对系统的swap分区大小来进行调整,不过建议在安装系统时就定义好是否要swap分区.swap分区的大小是多少,如果是条件允许的话建议swap分区在2GB~4GB间,如果还不够建议直接加内存.使用2GB的swap是因为有一些特殊的软件可能在平时使用的时候会使用到swap分区,如高性能的Oracle.当然,如果后期在使用的过程中发现swap分区过大,磁盘空间又使用紧张,那么就很有必要对系统的swap

Linux下的MBR分区

MBR分区 下面讲一讲如何给一块新添加入服务器的硬盘做MBR分区,那么为什么叫做MBR分区呢?后面会讲 做MBR分区,使用系统自带的fdisk工具.先看一看什么是fdisk,在命令行输入“fdisk”,如下: 上面是有关fdisk的信息以及相关的帮助信息. 然后再看一看系统中的分区情况,输入命令“fdisk -l”即可.截图如下: 从上图中发现系统中存在一块设备/dev/sdb,大小为8589M,我们还没有给其进行分区.下面我们就来给它进行分区吧. 我们通过命令”fdisk /dev/sdb”进

linux 下的磁盘分区,格式化及其挂载

一.添加磁盘 首先我们添加一块磁盘我是在 oracle vm virtualbox虚拟机上运行的,  在系统关闭的情况下选择添加新磁盘 添加完磁盘启动系统,我们首先切换至ROOT用户下接下来的操作都需要ROOT权限才能操作. 输入fdisk -l 发现出现一块    /dev/sdb   的8G的新磁盘,这就是我刚刚添加的. 二.磁盘分区 接下来我们对它进行分区,先输入 fdisk  /dev/sdb   这相当于一个引导命令在这个界面中,用户可以进行创建分区. 激活分区.删除分区和查看分区信息