Rhel磁盘管理

来源:互联网 发布:域名查询ip 编辑:程序博客网 时间:2024/04/27 15:05


参考文档:http://blog.sina.com.cn/s/blog_6fe60daa0101418c.html

http://blog.csdn.net/wind19/article/details/7395778

http://www.linuxidc.com/Linux/2013-02/79157.htm

磁盘操作是个危险系数很高的操作,在windows下面,有各种磁盘分区工具提供的图形界面,操作起来倒也不那么心虚,但在linux下面,磁盘操作全成了命令操作,这不禁让我对这种危险操作又多了几分畏惧,而且,liunx下的所有比如分区啦等等都是文件的形式展现,远不如图形界面中一块磁盘就是一道长条,这处一道分界线,那处一道分界线那样直观。

说些概念性的基础知识。

首先说下

linux的文件系统的结构

windows不同,linux的文件组织是一棵倒置的树的形式,最低是根目录,即“/”。根目录下再一层层的分支,这跟windows中的每个分区显示成一块盘很不一样,因此,最初接触linux的人对此很不习惯,放个文件不知道放哪里好,找个东西又不知道往哪处寻,而且,这种文件组织方式让初学者根本没有磁盘分区这个概念,至少本人刚接触的时候确是这种感觉,一头雾水的感觉。

我们也都知道,liunx中把所有的设备都映射成了文件,比如cpu、内存、声卡显卡等等。硬盘也是如此,这些设备文件都存放在/dev/目录下面。这些设备文件并不可读,只是在需要的时候被程序调用。

再有就是

linux对磁盘的命名方式,

首先对于不同类型的磁盘设备命名不一样,比如IDE接口的设备hdahdb等,是以h开头的,SCSI接口的设备命名为sdasdb等,是以s开头的,软驱则是以f开头。中间的一个d应该就是disk的意思了,最后一位abc……这些字母是不同磁盘的标示。比如我有两块硬盘,通过scsi接口连在计算机上,第一块磁盘在/dev里的名字就是hda,而第二块就是hdb了。

因为MBR中存放分区表的空间有限的缘故,无论是windows还是linux,其主分区和扩展分区之和不能大于4,其中扩展分区最多只能有一个。而扩展分区必须经过二次分区才能被识别,扩展分区继续分区的个数就可以有很多很多个了。因为在磁盘号后又要标示分区号,因此对于分区号的标示就是直接在磁盘号后加缀数字就行了,比如sda1sda2等。Linux系统规定,对于标注分区号的数字1-4为主分区预留号段,扩展分区分出的逻辑分区的分区号是从5开始往后排。

还有一个概念就是文件系统。

操作系统并不能直接读写裸磁盘,操作系统对文件的读写是通过文件系统来实现的,我们比较熟悉的文件系统有fat32ntfsext3等。文件系统主要是定义了磁盘的目录结构和组织方式。其中linux似乎支持大多数的文件系统。

下面开始说下磁盘管理的一些个命令。

Df命令,就是disk free的意思,可以查看分区的已用空间大小,未用空间大小等信息。常用参数-h,以MB显示大小;-T显示文件系统类型。

Du命令,就是disk usage的意思。Du可以以当前目录下的所有子目录为单位,查看每个子目录占用的空间大小。

Fdisk命令,磁盘分区工具。

下面就

以增加一块硬盘为例说明一下具体使用过程。

新增一块硬盘之后,/dev/中多出了sdb文件。

首先需要对磁盘进行分区,

fdisk  /dev/sdb进入分区配置界面。

几个有用的参数,m显示帮助信息

p显示当前分区信息,

n创建新分区,

d删除分区,

Q不保存退出,

W保存配置信息

按“n:”提示选择分区类型是主分区还是扩展分区,选择主分区p

输入主分区号,14中选一个;

设置磁盘大小,输入起始值和最终值即可完成分区操作。

根据自己的规划,重复以上操作即可完成对硬盘的分区。

硬盘分区之后,你就可以再/dev/目录下看到他们对应的文件名了,分别为sdb1sdb2sdb3

磁盘分区之后并不能被操作系统读写,

还需要格式化,

格式化就是配置相应的文件系统。

格式化命令为mkfs

mkfs   -t   文件系统类型    设备名即可。

比如我们把sdb1这个分区格式化为ext3格式。即可在终端中输入

Mkfs   -t   ext3    /dev/sdb1

即可。Mkfs支持的文件系统格式有ext2ext3vfat即格式化为fat32.。我就知道这几个。

我们再来介绍 mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkdosfs mkfs.msdos mkfs.vfat ,其实mkfs 在执行的命令的时候,也是调用的这个工具,这也是我先把mkfs介绍的主要原因; 通过文件名,我们就知道这些工具是支持什么文件系统;这些命令为我们提供了更多的方便;

 

[root@localhost beinan]# mkfs.ext3    /dev/sda6     注:把该设备格式化成ext3文件系统

[root@localhost beinan]# mke2fs -j   /dev/sda6       注:把该设备格式化成ext3文件系统

[root@localhost beinan]# mkfs.ext2  /dev/sda6       注:把该设备格式化成ext2文件系统

root@localhost beinan]# mke2fs    /dev/sda6         注:把该设备格式化成ext2文件系统 

[root@localhost beinan]# mkfs.reiserfs  /dev/sda6   注:把该设备格式化成reiserfs文件系统

[root@localhost beinan]# mkfs.vfat   /dev/sda6       注:把该设备格式化成fat32文件系统

[root@localhost beinan]# mkfs.msdos   /dev/sda6   注:把该设备格式化成fat16文件系统,msdos文件系统就是fat16

这样格式化就结束了,文件系统也就建立完毕。

补充一下交换分区,

就是虚拟内存的配置。命令有:

Mkswap   设备名    #创建交换分区

Swapon  设备名      #加载交换分区

Swapoff   设备名    #关闭交换分区

Swapon  -s     #查看交换分区

格式化分区之后就需要挂载了,

将分区挂载到某一个目录下。如

Mount  -t  ext3   /dev/sda1   /mnt/hardisk1

就是把sda1挂载到hardisk1目录下。

如果

要开机自动挂载

这些分区的话需要修改/etc/fstab文件,fstab文件中的一行形如:

/dev/sdb1    /mnt/ext3   ext3  defaults  0   0

第一字段为设备名。

第二字段为挂载点,就是你自定义的一个文件夹位置。对于swap设别,此字段为none

第三个字段为文件系统格式。

第四个字段为加载文件系统所使用的参数。多个参数之间用“,”分割,一般defaults即可。

其他参数含义:

Ro以只读模式加载该文件系统。

Sync关闭对文件系统的写缓冲功能。

User允许普通用户加载该文件系统。

Quota强制在该文件系统上进行磁盘定额限制

Noauto不再使用mount -a命令加载该文件系统。

第五个字段是被\"dump\"命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0

第六个字段是设定被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0

到这一步就完成了新增磁盘的各种配置。

在说下调整分区的大小。

在说调整分区大小之前首先区分一个概念,就是分区跟文件系统。文件系统并一定跟分区大小一样,他可以比他所在的分区小。这就跟给不同人家分地一样,给一家分一块地这就相当于分区,就是把一整块分成几块。但是,地分到户之后,每一户分自己的一部分种什么东西就不管分地什么事了,每户在自己的地上再分一部分种小麦,一部分花生,这种行为就跟在分区上建立文件系统类似了。我可以把自己的所有地都种玉米,就是在一块分区里只格式化出来一个文件系统,也可以在自己的地里一半种花生一半种大豆,就是在一块分区里格式化出几个文件系统。这个概念并不好理解。

通过具体分区操作来理解吧。

说下缩容。

首先把分区卸载。

umount  /dev/sdb1

然后检测文件系统,

看下大小如何。如e2fsck  -f   /dev/sdb1

再根据现在已有文件的容量,根据要调整分区的规划,计算下需要调整文件系统的大小。比如本身在这个文件系统中已有300M的文件,为了不损失数据,我们调整后的文件系统一定要比300M大,比如我们原本分区和文件系统大小为都为500M,我们想把分区缩小到400M,那么你调整后的文件系统大小应该略小于400M。如resize2fs   /dev/sdb1   390M

之后调整分区大小。

使用fdisk命令,先删去原有分区,再新建分区,分区大小设定为+400M

在设定分区大小的时候,要注意单位,比如以K为单位,不可写成“k”,因为1k=1000bytes1K=1024bytes。写错的话在下一步检测文件系统的时候会报错。

然后继续检测文件系统。

再调整一下文件系统大小。

resize2fs  /dev/sdb1。当resize2fs后不加文件系统大小时,表明将文件系统扩展到分区大小。

调整结束,下面挂载分区即可。

再说下扩容。

扩容一样,首先卸载两个分区,然后用fdisk分别删除这两个分区,再新建一个分区把这两个分区合并为一个,然后运行文件系统检测e2fsck  -f  /dev/sdb1。再调整文件系统大小resize2fs  /dev/sdb1,把文件系统调整到分区大小。然后挂载分区即可。

 

 

 

原创粉丝点击