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

    磁盘

    • Linux所有设备都被抽象成为一个文件,保存在/dev目录下。
    • 设备名称一般为hd[a-z]或sd[a-z]。如果电脑中有多硬盘,则设备名依次为sda、adb、sdc...以此类推
    • IDE设备的名称为hd[a-z]。SATA、SCSI、SAS、USB等设备的名称称为sd[a-z]。

    分区

             在Linux中,使用 备名称+分区号 的方式来表示分区,例如:

             sda1---第一块硬盘的第一个分区

             sda2---第一块硬盘的第二个分区

             sdb1---第二块硬盘的第一个分区

             。。。。。。

    分区是一个软件概念,主流分区机制分文MBR和GPT两种

    • MBR是传统的分区机制,应用于绝大多数使用BIOS的PC设备。

                       1、MBR支持32bit和64bit系统

                       2、MBR支持分区数量有限,最多只能创建4个主分区,要想创建多个分区,需要占用一个主分区创建一个扩展分区,然后基于扩展分区创建若干个逻辑分区(扩展分区不能用,只能用来创建逻辑分区)(SCSI硬盘最多15个逻辑分区,IDE硬盘最多63个逻辑分区)

                       3、MBR只支持不超过2T的硬盘,超过2T的硬盘将只能2T

    • GTP是一个较新的分区机制,解决了MBR很多缺点

                       1、支持超过2T的硬盘

                       2、向后兼容MBR

                       3、必须在支持UEFI的硬件上才能使用

                       4、必须使用64bit系统

                       5、MACLINUX系统都能支持GPT分区格式(部分windows系统支持)

    fdisk分区

             fdisk是一个基于MBR老牌的分区工具,支持几乎所有的Linux的发型版本。

    • fdisk命令只有具有超级用户权限才能运行
    • 使用fdisk -l可以列出所有安装的磁盘及其分区信息
    • 使用fdisk /dev/sd[a-z]可以对目标磁盘进行分区操作
    • 分区之后需要使用partprobe命令让内核更新分区信息,否则需要重启才能识别新的分区
    • /proc/partitions文件也可以用来查看分区信息

    fdisk /dev/sd[a-z]指令

    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)

    文件系统  

             创建分区之后,分区还不可以使用,操作系统必须通过文件系统才能管理文件和数据,磁盘或分区需要创建文件系统之后才能为操作系统使用,创建文件系统的过程被称之为格式化。

    • 没有文件系统的设备被成为裸(raw)设备。
    • 常见的文件系统有fat32、NTFS、ext2、ext3、ext4、HFS等
    • 文件系统之间的区别:日志、支持的分区大小、支持的单个文件大小、性能等等
    • windows下主流文件系统是NTFS,Linux下主流文件系统是ext3、ext4

    Linux支持的文件系统

             ext2          ext3          ext4          fat(msdos)          vfat          

             nfs             iso9660    proc          gfs             jfs      ......

    创建文件系统:

             mke2fs [参数] -t [文件系统类型] 分区

             参数:

                       -b      blocksize           指定文件系统块大小

                       -c                                  建立文件系统时检查损坏块

                       -L      lable                            指定卷标

                       -j                                   建立文件系统日志(ext3、ext4默认建立日志)

             mkfs也可以用于创建文件系统,支持参数较少,不能进行精细化

                       mkfs.ext3         /dev/sdb1

                       mkfs.ext4 /dev/sdb2

                       mkfs.ext4 /dev/sdb1

    查看分区的文件系统的信息

    dumpe2fs /dev/sdb5

    会列出sdb5分区下文件系统的详细信息

    文件系统标签

    给分区打上标签方便后期管理

    e2label 分区   --- 显示分区标签,如果没有设置过,则显示为空
    
    e2label 分区 标签名  ---  给分区设置标签

    检查并修复文件系统

    fsck /dev/sda*

    fsck -y /dev/sda*      可以遇到错误不提示,直接修复

    对于损坏的又修复成功但无法确定位置的文件,fsck会把这些数据放入lost+found目录中

    每次启动系统时候会对磁盘进行fsck操作

    挂载硬盘

             新硬盘分区完并且建立好文件系统之后,还需要挂载到一个目录上才可以使用

             Linux需要手动进行挂载操作或者配置/etc/fstab文件来自动挂载

    手动挂载

                      使用命令

    mount [参数] 挂载分区 挂载点

                    常用参数:

                               -t      指定文件系统的类型

                               -o      指定挂载选项

             挂载选项如图

             使用命令

    umount 文件系统或者挂载点

            来卸载挂载的文件系统

    如果在卸载过程中出现device is busy报错,则表示这个文件系统正在被使用,无法卸载

             使用命令:

    fuser -m /挂载目录

          来查看使用文件系统的进程

             使用命令

    lsof 挂载目录

      来查看正在被使用的文件

    配置文件自动挂载

             编辑/etc/fstab文件可以自动挂载文件系统到指定目录下格式如下

    挂载光盘:

             建立挂载点         

    mkdir /mnt/cdrom

             挂载光盘

             通过命令ll /dev/cdrom可以发现cdrom是链接至sr0的

     所以可以使用下面命令挂载光盘

    mount -t iso9660 /dev/cdrom /mnt/cdrom
    
             或者
    
    mount -t iso9660 /dev/sr0 /mnt/cdrom

           

             另外-t iso 9660也可以省略,因为系统已经默认光盘文件系统是iso9660

             提示“mount: block device /dev/sr0 is write-protected, mounting read-only”,是因为光盘是一旦刻录无法继续写入,所以是只读模式。

             此时可以进入/mnt/cdrom查看光盘内容

        卸载挂载 

    umount /mnt/cdrom/

     

    挂载U盘:

        建立挂载点 

    mkdir /mnt/usb

             

        挂载U盘

     mount -t vfat /dev/sdb1 /mnt/usb

        卸载挂载 

    umount /mnt/usb

        注意:挂载命令中的sdb1是可变的,当计算机中存在两块硬盘时,U盘则为sdc1,三块硬盘,sdd1,以此类推。。。

        使用fdisk -l 可查看系统硬盘挂载情况

    如果机器中挂载了两块硬盘,一块20G,一块5G,此时再插入U盘,设备文件名则为sdc1

      整理自:慕课网(www.imooc.com)网易云课堂(study.163.com)

  • 相关阅读:
    深度讲解Go语言-学习笔记
    vagrant常用命令
    CentOS7 安装Python虚拟环境 virtualenvwrapper
    《Android开发艺术探索》读书笔记——Cha3.2.3改变布局参数实现View的滑动
    Map接口的实现类 Map的区别
    Java多线程之内存可见性和原子性操作 一 synchronized
    LeetCode 153. Find Minimum in Rotated Sorted Array
    LeetCode 64. Minimum Path Sum
    实现线程同步的几种方式
    IOC的底层原理
  • 原文地址:https://www.cnblogs.com/xs104/p/4627821.html
Copyright © 2011-2022 走看看