MBR,是硬盘的主引导记录,处于0磁道0扇区,共有512字节,其中前446字节为BootLoader,用于引导系统启动,紧接的64字节用于标识分区,每16字节标识一个分区,故一个硬盘最多有4个主分区,若想使用更多的分区,可创建3个主分区,再创建一个扩展分区,然后在扩展分区上创建逻辑分区;最后的2个字节用于标识MBR是否有效。

   MBR对于磁盘非常重要,可使用下面命令对MBR进行备份:

         dd if =/dev/sda of=/mbrbackup bs=512 count=1

    当MBR损坏时,可用下面命令进行修复:

      dd if=/mbrbackup of=/dev/sda bs=512 count=1

   若要删除磁盘上的所有分区,可使用下面命令:

      dd if=/dev/zero of=/dev/sda bs=512 count=1

磁盘类型

  常见磁盘类型有IDE、SATA、SCSI、USB等

      linux中IDE用hd表示;SATA、SCSI、USB用sd表示;

      hda、hdb、hdc....表示同种类型下的不同设备 

      hda1、hda2、hda3.....表示同一磁盘的不同分区 

   linux中连接磁盘后,在/dev目录下以文件方式表示。

linux的EXT2文件系统

 ext2,是一种文件索引式文件系统,其分区格式可简单图解如下

     

  操作系统的文件数据除了文件实际内容外, 通常含有非常多的属性,例如 Linux 操作系统的文件权限(rwx)与文件属性(拥有者、群组、时间参数等)。 文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data block 区块中。每个block和inode都有对应编号,每个文件占用若干个data block和一个inode,如此,inode记录了文件数据的存放点。系统读取文件时先找到 inode,并分析 inode 所记录的权限与用户是否符合,若符合,即读取inode指向的block的内容

 superblock:记录文件系统整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格                            式与相关信息等,一般来说, superblock 的大小为 1024bytes。

 inode table:存放有inode号和文件属主、属组、时间戳等文件属性信息

 block bitmap:标识分区中哪些block已用,哪些block还未被使用

 inode bitmap:记录使用与未使用的 inode 号码

实际上,为了方便inode和block的管理,ext2 文件系统在格式化的时候基本上是区分为多个区块群组 (block group) 的,每个区块群组都有独立的 inode/block/superblock 系统,如下图

  注意事项:

   inode固定大小为128bytes,记录一个block要花掉4bytes;block大小可以有1024/2048/4096bytes;当文件太大时,inode会使用间接的block来记录编号,如下图

 

      ② 每个block只能存放一个文件的数据,故如果系统上的文件较小,而格式化时blocksize选4096bytes时会造成磁盘空间的浪费

 硬链接:两个路径指向同一个inode,其中一个文件删除后,另一个文件仍可访问该数据

 软链接(符号链接):一个文件包含了另一个文件的路径名,即一个文件的文件路径指向的inode指向               了另外一个文件的路径

      创建链接:

    ln 源 目的   #表示创建硬链接

       -s:      #创建软链接


使用一个新磁盘的步骤:

      1、为磁盘创建分区

     2、格式化分区(即为分区创建文件系统)

     3、挂载使用

相关命令:

 分区管理

   fdisk -l :查看系统识别的硬盘   

   fdisk /dev/sda    管理磁盘分区   

     回车后可选选项:

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

        n:创建新分区    

        e:创建扩展分区   

        p:创建主分区 

        d:删除一个分区 

        t:修改分区类型

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

        w:保存退出 

        q:不保存退出 

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

  •     若创建了扩展分区,如创建了扩展分区/dev/sda4,应执行fdisk /dev/sda4,继续创建逻辑分区

  •       创建分区后,使用命令partprobe或partx使内核重读分区表,使之识别新创建的分区;             partprobe /dev/sda表示只重读sda一个磁盘的分区表;

            cat/proc/partitions可查看内核识别了哪些分区;

  •        若要创建swap分区,应修改分区类型为82;若创建LVM,应修改分区类型为8e;若创建RAID分区,应修改为fd

 文件系统管理

      cat /proc/filesystems:查看内核支持的文件系统类型

   创建文件系统:mkfs  -t 文件系统类型  指定分区

           专门管理ext系列文件:

     mke2fs 指定分区        (不加选项表示创建ext2

      -j:创建ext3

      -b block_size:指定块大小,默认为4096,可用取值为102420484096

      -L LABEL:指定分区卷标

      -m #:指定预留给超级用户的块数百分比

      -i #:指定#个字节为创建一个inode;默认为8192;所给的数值#应该为块大小的2^n

         

      -N #:指定inode个数

      -F: 强制创建文件系统

      -E: 用于指定额外的文件系统属性

     blkid 指定分区:查看指定分区的相关属性(主要有UUIDTABLETYPE

      e2lable:用于查看或定义卷标

        e2lable 设备文件卷标:设定卷标

   dumpe2fs:显示文件系统属性信息

         -h:只显示超级块中的信息

                    tune2fs:调整文件系统的相关属性

       -j:不损害原有数据,将ext2升级为ext3

       -L LABLE:设定或修改卷标

       -m #:调整预留百分比

       -r #:指定预留块数

       -o:设定默认挂载选项

       -c #:指定挂载次数达到#次后进行自检;0-1表示关闭此功能

       -i #:指定每挂载#天后进行自检;0-1表示关闭此功能

       -l:显示超级块中的信息

     fsck:检查并修复linux文件系统

       -t fstype:指定文件系统类型

       -a:自动修复

   e2fsck:专用于修复ext2/ext3文件系统

       -f:强制检查

       -p:自动修复

   创建交换分区:(在此之前,应先调整分区类型为82

     mkswap 指定分区

       -L LABLE :指定卷标

 挂载管理

 挂载:将新的文件系统关联至当前跟文件系统

   卸载:将某文件系统与当前跟文件系统的关联移除

    mount 设备 挂载点      (命令mount可显示当前已挂载的的设备及挂载点)

         设备:

         设备文件

         卷标:LABLE=””

         UUID:UUID=””

         挂载点:目录

     挂载点要求:

         1、此目录没有被其他进程使用

         2、目录需存在

         3、目录中的原有文件将会被暂时隐藏

   

    mount [option1] [-o option2] 设备 挂载点

         option1:

             -a:表示挂载/etc/fstab文件中定义的所有文件系统

             -n:默认情况下。Mount命令每挂载一个设备,都会把挂载的设备信息保存至

              /etc/mtab文件中;使用-n时不将信息写进该文件中

             -t fstype:指定正在挂载设备上的文件系统的类型;不适用此选项时,mount

                  调用blkid命令获取对应文件系统的类型

             -r:只读挂载,挂载光盘时常使用此选项

             -w:读写挂载

                     

        -o:指定额外的挂载选项,也即指定文件系统启用的属性(后面多个选项时用逗号隔开)

         option2:(多个选项之间用逗号隔开)      

              remount:重新挂载当前文件系统

              ro:只读挂载

              rw:读写挂载

              loop:挂载本地回环设备

    

  挂载交换分区:

    swapon 指定分区

      -a:启用所有定义在/etc/fstab文件中的swap设备

    

   umount:卸载   (卸载时应确保没有进程使用该分区)

        umount 设备|挂载点

  卸载交换分区:

    swapoff 指定分区

 fuser:验证进程正在使用的文件或套接字文件

     -v:查看某文件上正在运行的进程

     -k杀掉访问文件的进程

   fuser –km 挂载点:终止正在访问此挂载点的所有进程

其他相关命令:

  du 指定目录   #显示目录的大小

  df  #显示整个磁盘的使用情况

    选项:

    不加选项:显示个分区的块使用情况

         -h:单位换算

         -i:显示各分区的inode使用情况

  创建设备文件mknod

    用法:mknod 选项 文件名 类型 主设备 次设备号

            选项:

           -m 权限   #指定权限

            类型:b c

              (b:块设备;c:字符设备)

若有朋友发现错误,请留言指出,一起沟通交流进步(^-^)V