• linux硬盘分区格式化及挂载


    1、硬盘的接口类型      

        硬盘的接口一般分为两种,一种是IDE并行接口,一种是SATA串行接口, 在linux上面IDE接口的硬盘被识别为/dev/hd[a-z]这样的设备,其中hdc表示光驱设备,这是因为主板上面一般有两个IDE插槽,一个IDE插槽可以接两个硬盘,而光驱是接着IDE的第二个插槽上面的第一个接口上面。其他诸如SCSI,SAS,SATA,USB等接口的设备在linux识别为/dev/sd[a-z]。        

    2、linux硬盘的分区

    磁盘的分区分为: primary(主分区)、extended(扩展分区)、Logical (逻辑分区)且主分区加上扩展分区的个数小于等于4个。且扩展分区最多只有一个,扩展分区是不能直接在里面写入数据的,扩展分区里面新建逻辑分区才能读写数据。如果看见一个硬盘有很多分区,则其实是在扩展分区里面新建的逻辑分区。

    主分区从 sdb1--sdb4

    逻辑分区是从 sdb5--sdbN

     如果所示linux硬盘分区之间的关系

    第一种情况为:四个主分区

    第二种情况为:三个主分区+一个扩展分区(扩展分区里面包括逻辑分区)

    3、linux上如何实现分区

    linux上面实现分区的命令: fdisk

    1)fdisk -l [DEVICE]

    查看linux某个硬盘的信息 fdisk -l /dev/[hs]d[a-z],不接设备名称,默认是查看所有硬盘的信息。

    2)fdisk  DEVICE 可以对硬盘进行分区操作

    [root@Redhat5 ~ ~]# fdisk /dev/sda

    Command (m for help): m  (输入m查看可以操作的菜单)

    Command action

      a   toggle a bootable flag

      b   edit bsd disklabel

      c   toggle the dos compatibility flag

      d   delete a partition     //删除一个分区

      l   list known partition types  //已知的分区类型列表

      m   print this menu          

      n   add a new partition     //添加一个新的分区

      o   create a new empty DOS partition table

      p   print the partition table  //打印分区表

      q   quit without saving changes  //退出但不保存配置

      s   create a new empty Sun disklabel

      t   change a partition's system id  //改变一个分区的系统标识

      u   change display/entry units     //改变显示/条目单位

      v   verify the partition table     //验证分区表

      w   write table to disk and exit   //保存退出

      x   extra functionality (experts only)

    常见linux支持的分区类型为82 swap交换分区、83 linux分区、8e LVM逻辑卷组。

    分区修改完成后键入w保存退出。这时分区还不能使用,因为linux的内核还没有识别分区的信息

    4、使linux内核识别分区信息

    cat /proc/partitions  查看内核识别的分区信息

    [root@Redhat5 ~]# cat /proc/partitions

    major minor  #blocks  name

      8     0  125829120 sda

      8     1     104391 sda1

      8     2   41945715 sda2

      8     3    1052257 sda3

    253     0   30703616 dm-0

    253     1    5111808 dm-1

    让内核重新读取硬件分区表有两个命令

    partprobe /dev/sda ------> redhat 5.x ,redhat 6.x需要重启

    partx -a /dev/sda5 /dev/sda------->redhat 6.x

    内核加载分区信息之后再查看

    [root@Redhat5 ~]# cat /proc/partitions

    major minor  #blocks  name

      8     0  125829120 sda

      8     1     104391 sda1

      8     2   41945715 sda2

      8     3    1052257 sda3

      8     4          0 sda4

      8     5    1959898 sda5

      8     6    3911796 sda6

    253     0   30703616 dm-0

    253     1    5111808 dm-1


    5、格式化分区

    格式化分区的命令

    mkfs   -t  fstype /dev/part   -t选择格式化的类型,然后是那个分区

    mkfs.ext2  /dev/part      格式化为ext2的类型,然后是接那个分区

    mkfs.ext3  /dev/part      格式化为ext3的类型,然后是接那个分区

    mkfs.ext4  /dev/part      格式化为ext4的类型,然后是接那个分区

    mke2fs 比之前几个更加强大的格式化分区的命令

    这几个命令之间相关的关系

    mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4

    mkfs -t ext3 = mkfs.ext3 = mke2fs -j = mke2fs -t ext3

    mkfs -t ext2 = mkfs.ext2 = mke2fs = mke2fs -t ext2

    mke2fs (man mke2fs):创建文件类型--->/etc/mke2fs.conf 配置文件

           -t:文件类型

           -j:相当于 ext3

           -b:指定块大小{1024|2048|4096byte},块大小取决cpu对内存页框大小的支持,x86系统默认页                  

              大小是4096,4k

           -L: label 设定卷标

          -m: #预留给管理使用的块所占的比率  一般用在分区很大的时候,#为数字

    1
    2
    3
    4
    mke2fs -t ext3 /dev/sda5                     #把分区格式为ext3格式的
    mke2fs  -t ext3 -b  2048  /dev/sda5     # 把分区的块改成2048字节,一般用于系统中小文件很多的情况
    mke2fs -t ext3 -m 3   /dev/sda5           #把分区预留的空间改为所占总空间的3%,默认为5%,因为当某个分区足够大的时候,可以减少空间
    mke2fs -t ext3 -L  DATE   /dev/sda5     #把分区的卷标设置为DATE

        tune2fs  命令可以查看分区的详细信息,mke2fs 与 tune2fs的关系和useradd与usermod的关系很类似。mke2fs支持的参数tune2fs大多数都支持,详情请man tune2fs查看相关的帮助。

    option

          -l: 显示文件系统超级块信息;

         -L label:重新设定卷标;

         -m #: 调整预留给管理使用的块所占据总体空间的比例;

          -r #: 调整预留给管理使用的块个数;

          -o:设定挂载默认选项

          -O: 设定文件系统默认特性

         -E: 调整文件系统的扩展属性

    tune2fs不支持-b参数改变块的大小。

    tune2fs   -l  /dev/sda5  可以详细查看分区的信息

    1
    2
    3
    4
    5
    6
    7
    [root@Redhat5 ~]# tune2fs -l /dev/sda5 | grep "^Block size"     //显示sda5分区块的大小
    Block size:               4096
    [root@Redhat5 ~]# tune2fs -l /dev/sda5 | grep "^Reserved"      //显示sda5预留空间
    Reserved block count:     24498
    Reserved GDT blocks:      119
    Reserved blocks uid:      0 (user root)
    Reserved blocks gid:      0 (group root)
    1
    2
    tune2fs -L DATE /dev/sda5   #修改卷标
    tune2fs -m 3 /dev/sda5       #修改预留给管理使用的块所占据总体空间的比例

    e2label:显示或设定卷标

    1
    e2label /dev/sda5 MYDATE

    blkid :显示设备的UUID及文件系统类型,及卷标

    6、挂载

    mount 挂载------>显示的是/etc/mtab文件里面的内容

    mount [-t fstype]     DEVICE                        MOUNT_POINT

    命令                           设备                                  挂载点

    mount [-t fstype]    LABEL="卷标"              MOUNT_POINT  -->e2label查看标签

    mount [-t fstype]     UUID="UUID"            MOUNT_POINT ---->blkid可以查看UUID

    options:

        -o:用于指定挂着选项,常用的挂着选项,选项有很多用逗号隔开

        ro:只读挂载

        rw:读写挂载(默认)

        noatime:关闭更新访问时间

        auto:是否能够由"mount -a"挂载

        defaults:相当于rw, suid, dev, exec, auto, nouser, async.

        sync:同步

        async:异步

        noexec:不容易设备中的二进制直接运行

       remount:重新挂载

       loop:本地回环设备:  挂载系统已经存在的镜像

       -t:

       -v:verbose 显示详细信息

       -n:挂载文件系统时,不更新/etc/mtab文件

       -r:只读挂载相当于"-o ro"

    挂载的几种方式

    显示系统已经挂载的文件

    挂载分区sda5到/mnt/sda5目录下

    [root@Redhat5 ~]# mkdir /mnt/sda5       #创建一个挂载目录

    [root@Redhat5 ~]# mount /dev/sda5 /mnt/sda5/ #把分区挂载到新建的目录里面

    [root@Redhat5 ~]# mount | grep "/dev/sda5"      #查看分区是否挂载

    /dev/sda5 on /mnt/sda5 type ext3 (rw)               #显示分区已经挂载

    [root@Redhat5 ~]# umount /dev/sda5               #卸载分区

    [root@Redhat5 ~]#mount | grep "/dev/sda5"     #发现分区已经被卸载

    [root@Redhat5 ~]# blkid       #显示设备的UUID及文件系统类型,及卷标

    /dev/mapper/vol0-home: UUID="d1aeef77-bb47-4718-a91c-d4870b536440" TYPE="ext3"

    /dev/sda3: LABEL="SWAP-sda3" TYPE="swap"

    /dev/sda1: LABEL="/boot" UUID="5e5eaaac-cc56-42da-81eb-9adebff0fa2e" TYPE="ext3"

    /dev/vol0/root: UUID="4302a528-e88e-43d3-b3cc-1c2b29cda656" TYPE="ext3"

    /dev/sda5: LABEL="DATE" UUID="8f4f9b53-0bf0-4ce9-9665-bd4c7ae9ce59" TYPE="ext3"

    [root@Redhat5 ~]# mount  LABEL="DATE"  /mnt/sda5/   #可以查到到分区5的标签为DATE,通                        

    过挂载标签来挂载分区

    [root@Redhat5 ~]# mount | grep "/dev/sda5"         #查看分区是否挂载

    /dev/sda5 on /mnt/sda5 type ext3 (rw)

    [root@Redhat5 ~]# umount /dev/sda5    #卸载分区

    [root@Redhat5 ~]#mount | grep "/dev/sda5"

    [root@Redhat5 ~]# mount UUID="8f4f9b53-0bf0-4ce9-9665-bd4c7ae9ce59" /mnt/sda5/

    #通过挂载UUID来挂载分区

    [root@Redhat5 ~]#mount | grep "/dev/sda5"

    /dev/sda5 on /mnt/sda5 type ext3 (rw)

    用mount命令挂载的文件在系统开机的时候是不能自动挂载的,想要系统开机就挂载写到配置文件即可/etc/fstab

    echo "LABEL=DATE  /mnt/sde5  ext3 defaults  0 0" >> /etc/fstab

    /etc/fstab文件的格式

    [root@Redhat5 ~]# cat /etc/fstab

    /dev/vol0/root          /                       ext3    defaults        1 1

    /dev/vol0/home          /home                   ext3    defaults        1 2

    LABEL=/boot             /boot                   ext3    defaults        1 2

    tmpfs                   /dev/shm                tmpfs   defaults        0 0

    字段以空格分隔

    1、挂载的设备:设备文件、卷标、UUID

    2、挂载点:  与跟相关联的目录

    3、文件系统类型:ext3,ext4

    4、挂载选项:defaults表示使用默认选项,多个选项彼此间逗号分隔

    5、转储频率:0:从不备份、1:每日备份、2:每隔一日备份

    6、自检次序:0:不检测、1:第一个检测,一般只能为根文件系统第一个检测 2 ...9

  • 相关阅读:
    我劝你不要记账
    富人不存钱
    1w+的心路历程
    简历这么写才对!
    Android 开发凉了吗!
    三个思维转变
    说一说赚钱
    【原】Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法(Matt Galloway著)读书笔记(二)
    【原】Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法(Matt Galloway著)读书笔记(一)
    【原】iOS开发进阶(唐巧)读书笔记(二)
  • 原文地址:https://www.cnblogs.com/sysk/p/4877661.html
Copyright © 2020-2023  润新知