[原创]xfs文件系统在RHEL 5.3下的安装及配置 & NFS挂载出错的解决办法

要在RHEL里的一个分区上使用xfs文件系统,不像Ubuntu那么简单。此处以RHEL 5.3为例,说明如何将一个分区格式化为xfs文件系统,并开机自动挂载。

首先,从安装RHEL 5.3说起。它默认是不支持xfs的,你无法在安装过程中指定一个分区使用xfs格式。因此,我选择了将此分区做成ext3的方法,待完全安装好系统之后再在命令行下格式化为xfs。

其次,安装好RHEL 5.3后,你要安装xfs相关的软件。我不得不说,xfs官方主页做得实在太烂了,连个快速让人下载到所需软件的地方都没有,这货还让人用git检出其源码来安装,我还得为了这玩意先装个git,然后再用龟速网络来检出源码,费劲吗?一句话形容:BT到极点。

文章来源:http://www.codelast.com/

于是我转而寻找可用的rpm包,还真是难找。我要是没记错的话,最后是在这个网站下载到的rpm包:http://rpm.pbone.net/

下载到的包名为:kmod-xfs-0.4-2.x86_64.rpm xfsprogs-2.9.4-1.el5.centos.x86_64.rpm

依次安装两个包,很顺利就装上了。

然后你要经历以下步骤,以完成使一个xfs分区可正常使用的任务:

加载xfs模块:

modprobe xfs

检查加载结果:

lsmod | grep xfs

输出结果形如:

xfs                   514248  1

文章来源:http://www.codelast.com/

在将分区格式化之前,我们当然要先在物理磁盘上创建分区。如果你的一个磁盘〉2TB,你要在它上面创建出一个〉2TB的分区的话,你是无法使用MBR(master boot record)形式的分区表的,因为MBR形式的分区表无法支持一个〉2TB的分区。你可以使用GPT(Guid Partition table)来突破这个限制。这个链接会对你有所帮助。

通常,我们是使用 fdisk 命令来分区的,但是 fdisk 命令无法支持〉2TB的分区操作——你可以用 fdisk -l 命令查看,会得到类似于下面的提示:

WARNING: The size of this disk is XXX TB (XXXXXXXXXXXXXX bytes).

DOS partition table format can not be used on drives for volumes larger than 2.2 TB (2199023255040 bytes). Use parted(1) and GUID partition table format (GPT).

很明显,它已经提示你要用GPT了。

而使用 parted 工具,则可以创建出〉2TB的分区,方法如下(假设你的磁盘为 /dev/sdb ):

parted /dev/sdb

(parted) mklabel gpt

(parted) mkpart primary xfs 0 -0

(parted) quit

 

 

下面就到格式化分区了。假设你要格式化为xfs的分区为/dev/sdb1,它是挂载在 /myxfs 目录下的,则:

先格式化xfs分区:

mkfs.xfs -f /dev/sdb1

然后挂载xfs分区:

mount -t xfs /dev/sdb1 /myxfs/

然后看看挂载上没有:

mount

应该会看到类似于这样的结果:/dev/sdb1 on /myxfs type xfs (rw)

别以为这样就结束了,你还要在 /etc/fstab 文件中添加或修改相关的内容,使得开机启动系统后可以自动挂载xfs分区。

我原来这个分区是ext3格式的,因此在 /etc/fstab 文件中有一句残留的语句:

LABEL=/myxfs             /myxfs                   ext3    defaults        1 2

你可能觉得,把 ext3 改为 xs 再保存文件就解决问题了,你可以试试这样做之后重启,再看看xfs分区是否挂载成功了?没有。为什么?具体原因你们可以看这个链接,我在这里只说解决办法:

先设置xfs分区的label(卷标):

xfs_admin -L /myxfs /dev/sdb1

这表示将卷标设置/myxfs 。然后查看刚设置的xfs分区的卷标:

xfs_admin -l /dev/sdb1

输出结果为刚设置的卷标就对了。

文章来源:http://www.codelast.com/

然后,修改 /etc/fstab 文件,将这一句:

LABEL=/myxfs             /myxfs                   ext3    defaults        1 2

改为:

LABEL=/myxfs             /myxfs                   xfs    defaults        1 2

就搞定了!现在你再重启系统,看看是否成功挂载了xfs分区:

df -h; mount;

 

文章来源:http://www.codelast.com/

顺便再记一下NFS挂载中遇到的两个错误的解决办法(与上面的文章没有任何关系)

假设我们要把远程服务器192.168.22.33的 /src 目录挂载到本机上的 /dest 目录下,则我们的挂载命令为:

mount -t nfs 192.168.22.33:/src/ /dest/

但是你可能会遇到以下错误提示:

错误(1)

mount: mount to NFS server XXX failed: RPC Error: Program not registered

解决这个问题,一般来说重启远程服务器上的nfs服务就可以了,在此例中,我在192.168.22.33服务器上执行:

service nfs restart

文章来源:http://www.codelast.com/

错误(2)再重新挂载,仍然出错,提示为:

mount: XXX failed, reason given by server: Permission denied

这个错误是由于你没有在远程服务器上为客户机安装NFS,解决办法是修改远程服务器上的 /etc/exports 文件(如果你没有改过这个文件的话,文件内容应该是空的),添加类似于下面这一句:

/src *(rw,sync,no_root_squash)

这表示允许任何客户机通过NFS挂载 /src 目录。当然这样不区分IP的设置方式有点危险,你可以修改为其他授权方式(例如 /src 192.168.44.0/24(rw,insecure,anonuid=0,sync,no_wdelay)),具体的写法这里就不详述了。

然后,在修改了/etc/exports文件后,不需要重新激活nfs,只要重新扫描一次/etc/exports文件,并且重新将设定加载即可:

exportfs -va

此时,你再在客户机上挂载试试看,应该就成功了。注意哟,如果你想开机也能自动mount,那么就需要修改 /etc/fstab 文件啦,这里就不谈了。

文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤ 
转载需注明出处:codelast.com 
感谢关注我的微信公众号(微信扫一扫):

wechat qrcode of codelast

发表评论