linux磁盘分区

Linux磁盘管理

查看磁盘或容量

df命令

命令df(disk filesystem),用于查看磁盘的容量、已使用的容量、剩余容量,可以不加任何参数,默认以KB为单位显示

image-20210305132042730

其中 /、/boot是我们在安装系统的时候划分出来的,/dev、/dev/shm为内存分区,默认大小为内存大小的0.5倍,如果我们把文件存在这个分区上相当于存在了内存中,读取速度非常快,但是只是临时的 关机后自动消失。后面的/run、/sys/fs/cgroup等分区都是tmpfs,跟/dev/shm类似,为临时文件系统,我们不要碰他们.df命令的常用选项有-i、-h、-k和-m.下面介绍这四种常用选项:

  • -i 查看inodes的使用状况,如果已经使用100%,即使空间有富裕,也会提示磁盘空间已满

image-20210305133037629

  • -h 表示使用合适的单位表示内存空间

image-20210305133141255

  • -k 和 -m都是以kb和mb的形式表示内存空间

image-20210305133304288

命令du

du 命令用来查看某个文件的大小 其格式为 du [-参数] [文件名]

  • -a表示全部的文件目录的大小都列出来。如果后面不加任何参数只会列出目录的大小,如果该命令不指定单位默认为kb
image-20210305134022257
  • -b表示列出的值以B为单位输出

  • -k表示以kb为单位输出 这和默认不加任何选项的输出值是一样的

  • -m表示以mb为单位输出

  • -h 表示系统自动调节单位

image-20210305134249410

  • -c:表示最后加总用量。

image-20210305134348011

  • -s:表示只列出总和。

磁盘的分区

增加虚拟磁盘

fdisk 命令

  • fdisk -l 查看磁盘分区以及分区表 后面加设备名称可以查看单个设备的分区情况

如果fdisk不加参数 后面只跟设备名称 表示对此设备进行分区

磁盘分区

  • fdisk -l 查看分区情况
image-20210305140939955

这里我们新添加的磁盘 /dev/sdb 大小为5g 还没有进行分区 下面来对此磁盘进行分区

  • 使用fdisk /dev/sdb 进行分区 输入m查看帮助文档

image-20210305141106259

  • p表示打印当前的分区情况
  • n表示添加一个分区
  • d表示删除一个分区 输入分区号
  • m 展示帮助文档
  • q表示退出
  • w表示保存

下面对磁盘进行主分区:

具体步骤如下

image-20210305141439552

  • p表示主分区 e表示扩展分区
  • 第二项表示从哪个地方开始 这里选择默认 否则会浪费磁盘空间
  • 第三项选择分区大小 这里选择+1000M 因为总大小为5000M

然后重复上面的步骤 对磁盘进行主分区 一共可以分4个主分区 如果 还想进行分区必须将第四个分区划为扩展分区

划分扩展分区

image-20210305141822574

这里选择e扩展分区 大小为2000M

使用p命令进行查看

image-20210305141941169

可以看到 /dev/sdb4为扩展分区

划分逻辑分区

我们继续在扩展分区中进行划分

image-20210305142222887

image-20210305142339221

此时再分区就和之前不一样了,你不再需要选择是主分区还是扩展分区,而是直接定义分区大小。值得注意的是,当创建完前3个主分区后,理应把剩余的磁盘空间全部划分给第4个扩展分区,不然剩余的空间就会浪费(在上面的示例中,阿铭其实并没有完全划分给扩展分区)。因为创建完扩展分区后,再划分新的分区时,是在已经划分的扩展分区里来分的。

上例中,/dev/sdb4为扩展分区,这个分区是不可以格式化的。你可以把它看成一个空壳子,能使用的分区为/deV/sdb5,它是/dev/sdM的子分区,这个子分区称为逻辑分区

如果从该开始直接将全部容量都划分为扩展分区,那么逻辑分区只能从5开始划分,并且不能再划分主分区,因为没有空间了

最后输入w进行保存分区配置

image-20210305144334966

  • 输入fdisk -l再次查看分区情况
image-20210305144425332

对磁盘进行格式化

磁盘分区虽然分好区了,但暂时还不能用,我们还须对每一个分区进行格式化。所谓格式化,其实就是安装文件系统,Windows下的文件系统有FAT32和NTFS。前面章节中,介绍过CentOS 7以XFS作为默认的文件系统,但我们依然可以给它指定ext3或者ext4格式。

image-20210305150527103

  • 使用mke2fs 进行格式化 -t指定格式化类型

其他常用选项如下:

-b:表示分区时设定每个数据区块占用的空间大小。目前,每个数据块支持1024B、2048B以
及4096B。
-i:表示设定inode的大小。

-N:表示设定inode的数量。有时默认的inode数不够用,所以要自定义inode的数量。

-c:表示在格式化前先检测一下磁盘是否有问题。加上这个选项后,运行速度会非常慢。
-L:表示预设该分区的标签(label)。
-j:表示建立ext3格式的分区。如果使用mkfs.ext3格式,就不用加这个选项了。
-t:用来指定文件系统的类型,可以是ext2、ext3,也可以是ext4。

添加标签

image-20210305150808661

e2label命令可以为磁盘分区添加标签 后面跟磁盘分区名和标签名

挂载分区

首先我们创建一个挂载文件

image-20210305150926017

然后使用 mount命令进行挂载

image-20210305151013608

查看挂载目录

image-20210305151052255

发现原来的目录文件已经不存在了

  • 我们也可以使用LABEL的方式挂载分区,如下所示:

首先使用 umount取消原先的挂载 然后重新挂载

image-20210305151140128

  • 最后使用df -h命令进行查看

image-20210305151318805

/etc/fstab 配置文件

我们先来查看一下/etc/fstab文件的内容,如下所示:

image-20210305151924879

这个文件中显示了系统启动时需要挂载的各个分区

  • 其中各个参数的意义如下:

    □第1列就是分区的标识,可以写分区的LABEL、分区的UUID (等会阿铭会着重讲一下这个概
    念),也可以写分区名(/dev/sdal )。
    □第2列是挂载点。
    □第3列是分区的格式。
    □第4列是mount的一些挂载参数。一般情况下,直接写defaults即可。
    □第5列的数字表示是否被dump备份。1表示备份,0表示不备份。
    □第6列的数字表示开机时是否自检磁盘。1和2都表示检测,0表示不检测。自检时,1比2优先
    级高,所以先检测1,再检测2。如果有多个分区需要开机检测,就都设置成2, 1检测完后会
    同时检测2。在CentOS 7系统里,所有分区中该列的值都是0。

  • 下面重点来看第四列选项:

    □ async/sync: async表示与磁盘和内存不同步。系统每隔一段时间就会把内存数据写人磁盘
    中,而sync则会时时同步内存和磁盘中的数据。
    □ auto/noauto:表示开机自动挂载/不自动挂载。
    □ default:表示按照大多数永久文件系统的默认值设置挂载定义,它包含了rw、suid、dev,
    exec、 auto、 nouser和async0
    □ ro:表示按只读权限挂载。
    □ rw:表示按可读可写权限挂载。
    □ exec/noexec:表示允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,否则将
    无法使用系统,甚至连mount命令都无法使用。
    □ user/nouser:表示允许/不允许root外的其他用户挂载分区。为了安全,请用nouser。
    □ suid/nosuid:表示允许/不允许分区有suid属性,一般设置nosuid。
    □ usrquota:表示启动用户的磁盘配额模式。磁盘配额会针对用户限定他们使用的磁盘额度。
    □ grquota:表示启动群组的磁盘配额模式。

接下来我们新添加一行

LABEL=TEST123 /newdir ext4 defaults 0 0

image-20210305152242926

然后卸载之前已经挂载的/dev/sdb5,如下所示:

image-20210305152402732

使用命令df -h查看,会发现已经成功卸载/dev/sdb5。下面执行命令mount -a:

image-20210305152443255

使用命令df -h查看,会发现多出一个文件/dev/sdb5挂载到了/newdir下,这就是mount -a命令执行的结果。这个-a选项会把/etc/fstab中出现的所有磁盘分区挂载上。除了-a选项外,还有两个常用的选项0
-t选项:用来指定挂载的分区类型,默认不指定,会自动识别。
-0选项:用来指定挂载的分区有哪些特性,即上面/etc/fstab配置文件中第4列的那些

image-20210305152748583

由于-o选项指定了ro参数,所以该分区只读了。通过mount命令可以看到,/dev/sdb5也有ro参
数,示例命令如下: mount |grep sdb5

image-20210305152917408

重新挂载,让它恢复读写,如下所示: mount -o remount /newdir

image-20210305153018064

blkid命令

blkid可以查看各个分区的uuid、LABEL或者分区类型

image-20210305153354331

如果想让某个分区在开机后自动挂载,有两个办法可以实现:一是在/etc/fstab中添加一行,如上例中那行;二是把挂载命令写到/etc/rc.d/rc.local文件中去,系统启动后会执行这个文件中的命令。只要你把想要开机启动的命令统统写入到这个文件中(直接放到最后)即可。阿铭经常把挂载的命令放到该文件的最后一行,示例命令如下:

image-20210305153704564

这里要使用命令的绝对路径

  • 赋予文件权限

chmod 755 /etc/rc.d/rc.local

建立一个swap文件增加虚拟内存

swap介绍

Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。 缓存分区

​ 安装系统时我们就接触了swap命令,它类似于Windows的虚拟内存,分区时一般指定虚拟内存的大小为实际内存的2倍。如果你的实际内存超过4GB,那么划分8GB给虚拟内存就足够日常交换了。如果真遇到了虚拟内存不够用的情况,就必须增加一个虚拟磁盘,因为我们不可能重新给磁盘分区。增加虚拟磁盘的基本思路是:建立swapfile—格式化为swap格式—启用该虚拟磁盘。

  • 建立swapfile,如下所示

dd if=/dev/zero of=/tmp/newdisk bs=1M count=1024

image-20210305154105793

dd命令经常用到,所以请你也要掌握它的使用方法:用if指定源(一般是写/dev/zero,它是UNIX系统特有的一个文件,它可以源源不断地提供 “0”),of指定目标文件,bs定义块的大小,count定义块的数量。bs和count这两个参数决定了目标文件的大小,即目标文件大=bscount。上面的示例中,用dd命令建立一个大小为1.1GB的文件,下面将它格式化为swap格式,命令如下:

mkswap -f /tmp/newdisk

image-20210305154249115

文件格式化后,就可以挂载使用了,如下所示:

image-20210305154519083

前后对比一下swap分区,我们发现多了 1024MB的空间。其中,free命令用来査看内存的使用情况,-m选项表示以MB为单位显示。

posted @ 2021-03-05 15:52  錵開や落幕  阅读(300)  评论(0编辑  收藏  举报