设为首页 收藏本站
查看: 389|回复: 0

[经验分享] linux磁盘管理及文件系统介绍

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-26 11:31:48 | 显示全部楼层 |阅读模式
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,是一种文件索引式文件系统,其分区格式可简单图解如下
       wKiom1ccx6ni_aslAAATI6T0Hh4542.jpg
  操作系统的文件数据除了文件实际内容外, 通常含有非常多的属性,例如 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 系统,如下图
wKioL1cc0WrzCFV1AAAzubFz_4E468.jpg
  注意事项:
     ① inode固定大小为128bytes,记录一个block要花掉4bytes;block大小可以有1024/2048/4096bytes;当文件太大时,inode会使用间接的block来记录编号,如下图
    wKiom1cczqzzGn0TAAC8hgyllSc789.jpg
      ② 每个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,可用取值为1024、2048、4096
      -L LABEL:指定分区卷标
      -m #:指定预留给超级用户的块数百分比
      -i #:指定#个字节为创建一个inode;默认为8192;所给的数值#应该为块大小的2^n
         倍
      -N #:指定inode个数
      -F: 强制创建文件系统
      -E: 用于指定额外的文件系统属性
     blkid 指定分区:查看指定分区的相关属性(主要有UUID、TABLE和TYPE)
      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:字符设备)


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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-209050-1-1.html 上篇帖子: Ubuntu 10.04 LTS 上安装sun-java6-jdk 错误解决办法 下篇帖子: Win7下安装Ubuntu Kylin 14.04(64位)及卸载 linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表