给Linux新增硬盘之后

df、du、fdisk:Linux磁盘管理三板斧


df 命令可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息,它也可以显示所有文件系统对i节点和磁盘块的使用情况;

du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况,统计目录(或文件)所占磁盘空间的大小;

fdisk 命令 用于磁盘分区;

mkfs  创建文件系统。



1、查看新增硬盘设备

fdisk   -l   


命令的作用是列出当前系统中所有硬盘设备及其分区的信息。其中 /dev/sda  为原有磁盘设备,/dev/sdb  为新增磁盘设备。

新的硬盘设备还未进行初始化,没有包含有效的分区信息。在Linux系统中,分区和格式化的过程是相对独立的。先分区后创建文件格式。


查看新添加的磁盘


Device分区的设备文件名称。

Boot:是否是引导分区,是,则有“*”标识。

Start:该分区在硬盘中的起始位置(柱面数)。

End:该分区在硬盘中的结束位置(柱面数)。

Blocks:分区的大小,以Blocks(块)为单位,默认的块大小为1024字节。

Id:分区类型的ID标记号,对于ext3分区为83,LVM分区为8e。

System:分区类型。



2、分区

对磁盘进行分区,以新建可用的分区;

对该分区进行格式化(format),以创建系统可用的文件系统;

若想要仔细一点,则可对刚才新建好的文件系统进行检验;

在Linux系统上,需要创建挂载点(也既是目录),并将它挂载上来。


这个 fdisk 只有root才能执行。此外,请注意,使用的“设备文件名”不要加上数字,因为分区是对“整个硬盘设备”而不是某个分区。


fdisk  /dev/sdb    #对 sdb  进行操作


查看磁盘操作


对硬盘分区, 使用扇区的方式分区


2 048-10 000 000



使用直接给定大小的方式分区 


+size{ K,M,G }


将分区写入磁盘


将分区表写入磁盘


partprobe  /dev/sdb        #使操作系统获知新的分区表情况

#partprobe 命令是强制让内核重新找一次分区表,否则系统要重启才能识别到新的分区表。

#因为我们的磁盘无法卸载(含有根目录),所以内核无法重新取得分区表信息,因此此时系统会要求我们重新启动(reboot)以更新内核的分区表信息。所以需要使用 partprobe 命令。


fdisk  -l        # 查看分区情况


fdisk 没有办法处理大于 2TB 以上的磁盘分区,此时你就需要用到 parted 这个命令了。

另外,因为SATA硬盘最多能够支持到15号的分区,IDE则可以支持63号。所以我们在分区的时候千万不要超过15号。否则即使你还有剩余的柱面容量,但还是会无法继续进行分区。



3、格式化

mkfs 即是(make file system)

mkfs  -t  ext4  /dev/sdb1    #创建文件系统


格式化 /dev/sdb1 文件格式为 EXT4



4、挂载 / 卸载 文件系统

在安装Linux操作系统的过程中,自动建立或识别的分区通常会由系统自动完成挂载。然而对于后来新增加的硬盘分区、USB盘、光盘等设备,有时候还需要管理员手动进行挂载,实际上用户访问的是经过格式化后建立的文件系统。挂载一个分区时,必须为其制定一个目录作为挂靠点,用户通过这个目录访问设备中的文件、目录数据。

查看系统支持那些文件系统和驱动程序:

/etc/filesystems:系统指定的测试挂在文件系统类型;

/proc/filesystem:Linux系统已经加载的文件系统类型;

/lib/modules/$(uname -r)/kernel/fs/  :Linux支持的文件系统驱动程序;


df  -hT        #查看已挂载分区的使用情况


查看已挂载分区的使用情况


mount 命令的用法



注意注意:

如果你要挂载的目录里面并不是空的,那么挂载了文件系统之后,原目录下的东西就会暂时消失,并不是被覆盖掉了,而是被隐藏起来了,等到新分区被卸载之后才会重新出现。

但是如果直接将 新的分区,如  "/dev/sdb1"  挂载到某个目录下,如 "/home"下,则会导致 "/home" 目录以前的全部文件被覆盖,但并未消失。且不会将此前的目录容量加上,这会导致严重的问题。如 "/home" 目录下的 "/zhang" 用户便不能登录,zhang 用户的所有配置和文件也将消失。所以必须注意这个问题。

一定要注意,复制 /home 下面的全部文件,不要忘了隐藏文件,不要忘了权限。不然你更改过后可能导致你这个用户起不来,这就很尴尬了。虚拟机还好,可以进 root 后再修改回来,要使远程主机不允许 root 登录,那你就只有跑过去机房了。如果是阿里云的服务器,哈哈哈。

所以我们需要先将 "/dev/sdb1"  挂载到  "/mnt" 下;

再将 "/home/*"  所有东西复制到  "/mnt/"

接着删除 "/home/*"  全部文件;若因为与此目录有关的程序运行占用目录导致无法删除 "/home",则利用 lsof  命令找到这些程序的 PID,然后 "kill  -9 PID" 后在删除 "/home" 。lsof 命令 列出被进程所打开的文件的信息

之后再解挂载 "/mnt";

最后再将  "/dev/sdb1" 挂载到  "/home";

mount  /dev/sdb1  /mnt

cp  -Rp  /home/*  /mnt    #R递归负责,p保持复制的权限,如果没有这个,到时后/home目录下的某文件夹的所有者和所属组都是 root,没有办法切换到此用户。

rm  -rf  /home        #此处可能会用到  lsof  命令 -->  lsof  /home

umount  /mnt

mount  /dev/sdb1  /home

Bingo !!!

好像还差一步,需要将此写进 /etc/fstab 配置文件中,让它开启自读取。



设置文件系统的自动挂载

/etc/fstab 配置文件:包含了需要开机后自动挂载的文件系统记录。Linux系统每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统。

fstab 配置文件中加入挂载点之后其实就已经是开机自动挂载了,不需要用 mount 命令挂载。但是还是用 mount  实在,因为最后还是需要写入 /etc/fstab

vi  /etc/fstab

第一字段:

设备名或设备卷标名。

第二字段:文件系统的挂载点目录的位置。

第三字段:文件系统类型,如ext3、swap等。

第四字段:挂载参数,即mount命令“-o”选项后可使用的参数,如defaults、rw等。

第五字段:表示文件系统是否需要dump备份,一般设为1时表示需要,设为0时将被dump所忽略。

第六字段:该数字用于决定在系统启动时进行磁盘检查的顺序,0表示不进行检查,1表示优先检查,2表示其次检查。对于根分区应设为1,其他分区设为2.

添加自动挂载 "/dev/sdb1"分区的配置

vi  /etc/fstab

/dev/sdb1  /home  ext4  defaults  0  0 


将挂载添加到配置文件

这里我将 defaults  错写成 default,导致我开机后用户 zhang 无法登录,然后找了半天才找到这个错误。



内存交换空间(swap)

还记得在安装Linux时一定需要的两个分区吧,一个是根(/)分区,一个就是内存交换分区(swap)。

我们知道CPU多都取得数据都来自内存,那当内存不足的时候,为了让后续的程序可以顺利运行,因此在内存中暂不使用的程序与数据就会被挪到swap中。此时内存就会空出来给需要执行的程序加载。

由于swap使用硬盘来暂时放置内存中的信息,所以用到swap时,你的主机硬盘灯就会开始闪个不停。

mkswap        # 建立交换分区




LVM概述

LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,它是建立再硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高了磁盘管理的灵活性。

在安装RHEL5系统的过程中选择自动分区时,默认就会采用LVM分区方案,不需要再进行手动配置。如果有特殊需要,也可以使用安装向导提供的磁盘定制工具调整LVM分区。需要注意的是,“/boot”分区不能基于LVM创建,必须独立出来。


关于LVM的几个基本术语:

1、PV(Physical Volume,物理卷)

物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元PE,从而构成物理卷。

物理卷一般直接使用设备文件名称,如“/dev/sdb1”、“/dev/sdb2”等。

用于转换成物理卷的普通分区,建议先使用fdisk工具将分区类型的ID标记号改为“8e”。若是整块硬盘,可以将所有磁盘空间划分为一个主分区后再作相应调整。


2、VG(Volume Group,卷组)

由一个或多个物理卷组成一个整体,即成为卷组,在卷组中可以动态地添加或移除物理卷。许多个物理卷可以分别组成不同的卷组,卷组名称由用户自行定义。


3、LV(Logical Volume,逻辑卷)

逻辑卷是建立在卷组之上的,与物理卷没有直接关系

对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。使用mkfs等工具在逻辑卷上创建文件系统以后,即可挂载到Linux系统中的目录下使用。


通过上述对物理卷、卷组、逻辑卷的解释可以看出,建立LVM分区管理机制的过程就是:首先,将普通分区或整个硬盘创建为物理卷;接下来,将物理上比较分散的各物理卷的存储空间组成一个逻辑整体,即卷组;最后,基于卷组这个整体,分割出不同的数据存储空间,形成逻辑卷。而逻辑卷才是最终用户可以格式化并挂载使用的存储单位。


LVM管理命令


主要命令的语法

pvcreate    设备名

vgcreate    卷组名    物理卷名1    物理卷名2

lvcreate      -L    大小    -n     逻辑卷名     卷组名

lvextend     -L  +大小     /dev/卷组名/逻辑卷名

推荐阅读更多精彩内容