磁盘与文件系统管理之二

设备文件:

    b:block,块设备,随机访问设备,比如硬盘

    c:character,字符设备,线性访问设备,比如键盘

ls -l /dev下设备文件的特殊字段(普通文件中的大小字段):

    主设备号(major number)

        标识设备类型

    此设备号(minor  number)

        标识同一设备类型中的不同设备


mknod:创建设备文件

     mknod [OPTION]... NAME TYPE [MAJOR MINOR]

        -m mode 指定权限


    echo  "hello" > /dev/pts/0:向终端发送hello字符,如果刚好有用户在pts/0上登陆,则终端会显示hello字符。


硬盘设备的设备文件名

IDE,ATA:hd

SATA:sd

SCSI:sd

USB:sd

        a,b....来自同一类型下的不同设备


IDE:

    第一个IDE口:主、从

        /dev/hda,/dev/hdb

     

    第一个IDE口:主、从

        /dev/hdc,/dev/hdd

hda:

    hda{1-4}:第n个主分区

    hda5:第一个逻辑分区

这是因为MBR里面只有64字节标识分区表,而每16位标识一个分区,为了不混淆,1-4的编号特定给主分区或扩展分区用,而扩展分区要再划分成逻辑分区才能使用,所以逻辑分区从5号开始。且磁盘容量满足一下公式:

    逻辑1+逻辑2+...逻辑n=这些逻辑分区共同的扩展分区容量

    所有的扩展分区+所有的主分区容量=硬盘容量


分区表操作命令:fdisk

    fdisk -l:查看当前系统上的分区详情


高级格式化命令:mkfs

    格式化过程:管理员使用mkfs命令唤醒一个进程,进程会根据你指定的文件系统类型去内核查看并加载对应模块,然后使用模块的功能进行格式化。

    

    Q:为什么文件系统要做成内核模块

    因为大部分文件系统所提供的功能都是相似的,如果每个命令都根据相对应的文件系统进行编写,那么程序无疑是庞大而冗余的,而如果做成内核模块,再把功能做成统一接口向用户提供,则大大精简了程序,这个接口我们就叫做VFS(虚拟文件系统,virtual filesystem)。所以当我们要指定某一文件系统类型的时候,内核必须含有相对应的文件系统类型模块。


挂载点相关知识:

    当我们新建一个分区时,系统并不能马上识别这个分区,这个时候我们可以用partprobe命令重读分区表,当分区表格式化完成的时候,linux也不能马上使用这个文件系统,必须把这个文件系统挂载在相对应的路径上,这个路径我们就叫做挂载点。

    挂载点必须在当前linux系统所在的分区上,且一个挂载点只能挂载一个分区,如果挂载多个,那么会隐藏第一个被挂载的分区,这是因为:

    假设/tmp在当前分区上,我们有两个分区a和b,a挂载在/dev上,b挂载在a上,这个时候如果把/tmp挂载在b上将会造成一个死循环,为了避免这种情况发生,我们规定一个挂载点只能挂载一个分区。


管理磁盘分区:

    fdisk  /dev/sda

        p:显示当前硬件的分区,包括没保存的改动

        n:新建新分区(new)

            p:主分区 (primary)

            e:逻辑分区(extend)

        d:删除一个分区(delete)

        w:保存退出

        q:不保存退出

        t:修改分区类型

        l:显示所支持的所有类型


        




本文出自 “单季稻” 博客,谢绝转载!

你可能感兴趣的:(fdisk)