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

时间: 2024-11-10 07:17:12

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

Let's Encrypt: 为CentOS/RHEL 7下的nginx安装https支持-具体案例

环境说明: centos 7 nginx 1.10.2 前期准备 软件安装 yum install -y epel-release yum install -y certbot 创建目录及链接 方法1:在网站根目录下创建一个.well-known的目录 方法2: mkdir -p /usr/local/nginx/cert/.well-known ln -s /usr/local/nginx/cert/.well-known /data/www/example.com/.well-known l

ORA-14402: 更新分区关键字列将导致分区的更改

默认情况下,oracle的分区表对于分区字段是不允许进行update操作的,如果有对分区字段行进update,就会报错——ORA-14402: 更新分区关键字列将导致分区的更改.這種情況可以通過開啟表的行移動來允許對分區字段的update 操作:      alter table xxx enable row movement;     之後就可以成功update 分區字段,同時因為行的物理移動,導致rowid發生變化,對應列值的索引葉塊 會標記為刪除,插入新的葉塊,重定義完分區后,記得關閉行移

Linux下的磁盘分区和逻辑卷

一.硬盘接口类型 硬盘的接口主要有IDE.SATA.SCSI .SAS和光纤通道等五种类型.其中IDE和SATA接口硬盘多用于家用产品中,也有部分应用于服务器,SATA是一种新生的硬盘接口类型,已经取代了大部分IDE接口应用.SCSI .SAS主要应用于服务器上,普通家用设备一般不支持SCSI和SAS接口.SAS也是是一种新生的硬盘接口类型,可以和SATA以及部分SCSI设备无缝结合.光纤通道最初设计也不是为了硬盘设计开发的接口,是专门为网络系统设计的,但随着存储系统对速度的需求,才逐渐应用到硬

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 -------------