• 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为单位显示。

  • 相关阅读:
    Android--将图片存放到我们本地
    Android--将Bitmip转化成字符串
    Android--启动系统的剪切图像功能并返回结果
    Android--从相册中选取照片并返回结果
    Android--启动拍照功能并返回结果
    Android--PullToRefreshListView的onRefreshComplete()不起作用的问题
    Android判断当前的android设备是否处于联网状态
    Android中修改状态栏的颜色和我们App的风格一致
    ListView的多布局中的小问题
    [Android] Activity间切换,传递数据
  • 原文地址:https://www.cnblogs.com/zgrey/p/14486673.html
Copyright © 2020-2023  润新知