zoukankan      html  css  js  c++  java
  • Linux 磁盘分区、挂载

    磁盘分区:

    介绍:
      磁盘分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分,盘片一旦划分成数个分区(Partition),不同类的目录与文件可以存储进不同的分区。例如在windows中一块磁盘可以分为主分区与扩展分区。主分区作为系统盘,扩展分区经过再次分区成多个逻辑分区(“我的电脑”里的D盘、E盘等)。

    分区的方式:

      mbr分区:

        1.最多支持四个主分区
        2.系统只能安装在主分区
        3.扩展分区要占一个主分区
        4.MBR最大只支持2TB,但拥有最好的兼容性

      gtp分区:

        1.支持无限多个主分区(但操作系统可能限制,比如 windows下最多128个分区)
        2.最大支持18EB的大容量(1EB=1024 PB,1PB=1024 TB )
        3.windows7 64位以后支持gtp

    Linux磁盘分区(n):

    介绍:

      1.Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘。

      2.对于IDE硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。

      3. 对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。

      4.可以通过 lsblk 或 lsblk -f命令可以查看当前系统的硬盘分区。

    原理:
      首先了解一下Linux目录 https://www.cnblogs.com/ymzsb/p/14867027.html

      1.对Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux中每个分区都是用来组成整个文件系统的一部分。

      2.Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。

    Linux磁盘分区、挂载(v):

    挂载步骤:

      1.添加硬盘

    添加硬盘后启动系统,通过lsblk 或 lsblk -f命令可以查看到已添加的硬盘。之前说过/dev是存放Linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备。所以此时可以在/dev可以查到硬盘的设备文件。

      2.分区

    通过 fdisk 命令对硬盘进行分区,另,其也可以查看硬盘分区情况。

    fdisk [选项] 设备文件
    选项:
      选项基本不用,就不叙述了
    例:
      fdisk /dev/sda    
        开始对硬盘/sda进行分区,会接着提示输入fdisk命令对应的操作命令。常用的有m:显示命令列表;p:显示磁盘分区;n:新增分区;d:删除分区;w:写入并退出。

      进行分区,开始分区后输入n,新增分区。然后选择p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。

      3.格式化

    硬盘分区后没有指定分区类型。这时我们需要通过mkfs命令为硬盘创建Linux文件系统。格式化后的分区才能存储文件。

    mkfs [选项]  设备文件
    选项:
      常用的选项就一个
      -t<文件系统类型>:指定要建立何种文件系统
    例:
      mkfs -t ext4 /dev/sda1    //将sda1分区格式化为ext4格式       

      4.挂载

    将一个分区与一个目录联系起来,此时分区还没有进行挂载所以无法使用。通过mount命令将分区挂载到指定的目录。

    mount [选项] 设备文件名 挂载目录
    选项:
      选项很多,但不常用。
      -a:加载文件“/etc/fstab”中描述的所有文件系统。
    例:
      mount /dev/sda1 /home/mydisk    
        将sda1分区挂载到/home/mydisk目录,现在开始就可以通过/home/mydisk使用sda1分区了。

    此时的挂载只是临时挂载,在系统重启后就会失效。所以我们需要设置永久挂载。

      5.设置永久挂载

    在/etc/fstab文件里配置了各个分区以及其挂载位置的信息,所以通过修改文件里的内容可以设置分区永久挂载。
    我们可以添加一行内容来对分区的挂载进行描述,例:
      /dex/sda1    /home/mydisk    ext4    defaults    0 0
    也可以通过sda1分区UUID进行挂载(首先得查询sda1的UUID)
      UUID=f2ff5afb-d115-4dac-b86f-c9e3f5ecc169    /home/mydisk    ext4    defaults    0 0
    以上两行都可以。

    此时,保存/etc/fstab文件,并通过 mount -a 使其生效。

    补充,/etc/fstab内容的各字段含义
      文件名或文件标识    挂载目录    分区类型    挂载参数    dump值 pass值
      具体详情可参考:https://blog.csdn.net/kepa520/article/details/81315430

    卸载设备:
      umount [选项] 设备名称或挂载目录
      选项:
        -a :卸除/etc/mtab中记录的所有文件系统;
        -h :显示帮助;
        -n :卸除时不要将信息存入/etc/mtab文件中;
        -r :若无法成功卸除,则尝试以只读的方式重新挂入文件系统;
        -t<文件系统类型> :仅卸除选项中所指定的文件系统;
        -v :执行时显示详细的信息;
        -V :显示版本信息。
      例:
        umount /dex/sda1         //指定设备名进行卸载
        umount /home/mydisk        //指定挂载目录进行卸载
        以上两条都可以对已经挂载的设备进行卸载,尽量指定挂载目录进行卸载,
        以免使用绑定挂载(一个设备,多个挂载目录)时产生混乱。

    Linux查询磁盘情况:

    1.查询系统整体磁盘使用情况:

    df [选项]
    选项:
      选项很多,但不常用。
      -a :包含全部的文件系统;
      -h :以可读性较高的方式来显示信息;
    例:
      df    查看系统磁盘设备,默认是KB为单位。
        显示的信息:    文件系统    1K-块    已用    可用    已用%    挂载点
      df -h    查看系统磁盘设备,选项以KB以上的单位来显示,可读性高。
        显示的信息:    文件系统    容量    已用    可用    已用%    挂载点

    2.查询指定目录的磁盘占用情况

    du [选项] 目录或文件
    选项:
      -s :指定目录占用大小汇总
      -h :带计量单位
      -a :含文件
      --max-depth=1 子目录深度
      -c :列出明细的同时,增加汇总值
    例:
      du -h    对当前目录下的目录项(递归)的占用空间进行展示。
      du -ach --max-depth=1 /opt  对/opt目录下的子项的占用空间进行统计展示

    3.统计磁盘下的内容

    wc [选项]
    使用说明:
      利用wc指令我们可以计算文件的Byte数、字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。
    选项:
      -c :只显示Bytes数;
      -l :只显示列数;
      -w :只显示字数。
    例:
      ls -l /opt | grep "^-" | wc -l      统计/opt目录下子文件的个数
      ls -l /opt | grep "^d" | wc -l        统计/opt目录下子目录的个数

    补充:

    tree [选项] 目录   
    使用说明:
      以树状图列出目录的内容。
    选项:
      选项很多,但不常用。
    例:
      tree    以树状图列出当前目录的内容。

  • 相关阅读:
    [翻译]汇编器和加载器简史
    一定要制作一个计划
    基本排序算法(冒泡,快排,插入,希尔,选择,归并)
    用yunio网盘搭建git私有仓库
    git 学习笔记1
    select函数
    axel源码学习(1)——重要流程细节
    axel源码学习(0)——程序逻辑
    Unix网络编程(3)——C/S模型几种情况
    【转】程序员技术练级攻略
  • 原文地址:https://www.cnblogs.com/ymzsb/p/14957354.html
Copyright © 2011-2022 走看看