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

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

[root@localhost ~]# lsof /dev/sda
[root@localhost ~]# 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命令来解决这个。

[root@localhost ~]# 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)
[root@localhost ~]# 
[root@localhost ~]# 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”

检查分区节点信息。

[root@localhost ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1  /dev/sdb2
[root@localhost ~]# 

 

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

[root@localhost ~]# partx -a /dev/sdc2 /dev/sdc
 
[root@localhost ~]# partx -a /dev/sdb2 /dev/sdb
 
[root@localhost ~]# partx -a /dev/sda4 /dev/sda

 

参考资料:

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

时间: 2024-07-28 17:02:18

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

Windows Server 2008下为系统分区“减负”

计算机系统运行时间一长,其运行速度将会明显变慢,并且时不时地还出现系统分区空间不够用的提 示,对于这样的现象,相信几乎所有的人都深有感触!造成这种现象的主要原因就是系统分区"不堪重负 ",想办法为系统分区"减负",已经变得刻不容缓.不同的系统环境下,为系统分区"减负"的操作有 时会不一样:现在,本文就为各位朋友介绍Windows Server 2008下为系统分区"减负"的秘籍! 1.不让上网垃圾"拖累"系

Linux系统下php获得系统分区信息的方法

 这篇文章主要介绍了Linux系统下php获得系统分区信息的方法,涉及Linux下php系统分析的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了Linux系统下php获得系统分区信息的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 $pars = array_filter(explode("n",`df -h`)); foreach ($pars as $par) { if ($par{0} == '/') {

[EGORefreshTableHeaderView]手动启动下拉更新的方法

Q:在EGORefreshTable中手动启动下拉更新的方法? A:EGORefreshTable中提供了方法,让用户下拉table到一定位置实现下拉更新的效果,现在我想复用这种效果用于table更新,比如我做一个按钮,当用户点击这个按钮时,执行这种数据加载中的效果,或者app刚刚启动时,也可以执行这个操作.详细参考代码 -(void) ViewFrashData{ [tblView setContentOffset:CGPointMake(0, -75) animated:YES]; [sel

仿新浪微博的ListView下拉更新功能

http://blog.csdn.net/wangkuifeng0118/article/details/7463594            OK,今天我们要实现的就是上面的下拉刷新功能.       首先实现下拉刷新的布局文件 layout/head.xml [html] view plaincopy <?xml version="1.0" encoding="utf-8"?>      <!-- ListView的头部 -->     

jsp java-JSP和Java的Action结合下载文件以后返回jsp页面,能把页面上文件的下载量更新一下吗?

问题描述 JSP和Java的Action结合下载文件以后返回jsp页面,能把页面上文件的下载量更新一下吗? 这边是一个下载按钮,直接下载服务器上的一个pdf格式的文件,下载以后数据库里面的下载量会增加.但是页面上显示的下载量没有增加,有没有办法让后台在文件下载完成以后给前台返回一个信息,然后前台根据信息去刷新页面? 注释:用异步请求肯定是不行的,因为用Ajax异步请求的话,文件不能下载! 求高手指点!不好意思!刚注册的用户还没有搞明白我们这边的C币是怎么来的!希望高手不要介意! 解决方案 下载完

contentplaceholder-gridview 放在ContentPlaceHolder下,不能更新

问题描述 gridview 放在ContentPlaceHolder下,不能更新 gridview 放在ContentPlaceHolder下,为什么点击编辑后的修改,再单击更新后,连Gridview都不显示了.而单独页面就没有任何问题 前台: <%@ Page Title="MastPage" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site1.Master

WP8.1下一个更新版本或7、8月间推出

WP8.1下一个更新版本或7.8月间推出诺基亚已开始正式推送基于WP8.1的"湖蓝"升级,而更令人期待的是,WP8.1的下一个更新也要来了.国外测试网站WPBench泄露信息显示,Windows Phone又一个全新的系统版本已经在测试中.该系统的版本号为8.10.14130.0,比目前的 WP8.1预览版(版本号为8.10.12397.895)要高出一些,预计性能也会有不小提升.据预计,这个最新泄露的系统更新很可能是Windows Phone 8.1 GDR1,后者将会在7.8月间推

Linux系统下php获得系统分区信息的方法_php技巧

本文实例讲述了Linux系统下php获得系统分区信息的方法.分享给大家供大家参考.具体实现方法如下: $pars = array_filter(explode("\n",`df -h`)); foreach ($pars as $par) { if ($par{0} == '/') { $_tmp = array_values(array_filter(explode(' ',$par))); reset($_tmp); echo "分区挂载点:{$_tmp['5']},&q

CentOS6下挂载NTFS分区及问题处理方法

CentOS 6.3 下用ntfs-3g挂载Windows NTFS分区 默认情况下,CentOS 6.3不支持Widows NTFS硬盘分区读写,要想把NTFS格式的磁盘挂载到CentOS 6.3下面 需要安装第三方的插件ntfs-3g,这里我们采用编译安装插件. 下载地址:http://www.tuxera.com/community/ntfs-3g-download/ 安装前先确认系统时间是否正确,不然会出现无法安装ntfs-3g的情况. 1.安装编译器,否则不能成功编译. yum ins