马哥教育第八天文件系统、mount、mke2fs、fdisk

8.1.1、Linux文件系统存储空间分为(数据区和元数据区),一般硬盘扇区是512字节,一个block(块)可以包含(2、4、8不同扇区),一个块只能属于一个文件但一个文件可以包含多个块,stat可以查看元数据(文件名,大小,时间戳,权限,属主、属组,对应数据存储在哪些磁盘块上),ls -i可以查看文件的inode编号,每个编号又对应着磁盘上的存储区域,但是文件名并不存放在inode上而是存放在上级目录中所以目录数据区中存放的是文件名和inode对应关系
8.1.2、因为inode编号太多查找该inode是否使用比较消耗资源,为了更快的查找到未使用的inode会对inode做索引这叫bitmap(位图索引)inode位图,相对应的块也会做block bitmap(块位图),所以元数据区中存放了(inode、ionde bitmap、block bitmap),数据存储方式:每次会拿8个未使用的磁盘块用来存储,如果只用了一个会把未使用的块还回去不够时在取8个未使用磁盘块,评估磁盘性能时会有2种评估模型(随机io和连续io:磁盘读写数据是靠机械手臂完成,如果数据是连续存储将会提高读写速度,乱序将影响读写性能)
8.1.3、为了方便管理把块分为块组,每个块组都有独立的数据区和元数据区,块组的元数据信息和块组之间运行都由超级块进行协调,并且在多个块组中会有超级块备份,tune2fs可以查看分区的超级块信息举例:tune2fs -l /dev/sda1,还可以通过dumpe2fs查看分区中块组信息举例:dumpe2fs /dev/sda1 加上-h也可以查看超级块信息
8.1.4、链接文件:2个文件指向同一个inode,此时一个文件就称为另一个文件的硬链接,当一个文件指向另一个文件的路径时此文件称为软连接也称为字符链接,ln -sv创建软链接,一个inode可以被引用多次其有计数器计算:在引用次为降为0之前是不会被标记为未用的。
8.1.5、硬链接(不能对目录创建硬链接、也不能跨分区、会增加inode引用计数,软连接可以对目录创建、不受分区限制、不增加引用计数)。文件被删除:仅删除路径,inode指向的磁盘块被标记为空闲,文件复制:创建一个新文件并把原文件再次写入磁盘块,文件移动:在同一个分区移动:文件仅是改变了文件访问路径、跨分区移到:在新分区创建文件,把数据复制过去,删除原分区数据。

8.2.1、设备文件:特殊文件只有ionde 而没有数据,关联至一个驱动程序进而跟对应硬件打交道、一般在/dev目录下,在设备元数据中每个设备都有设备号(主设备号:用于标记驱动程序(设备类型),次设备号:标记同一类设备中的不同设备,例如多块硬盘),mknod可以创建设备文件,设备文件命名由ICANN制定。
8.2.2、mknod (-m设置权限、创建文件名称、b块设备 主设备号 次设备号,举例:mknod -m 660 /dev/test1 b 120 0),磁盘设备文件(/dev/sd[a-z],USB: 串行、SATA: 串行、SCSI: 并行、SAS:串行,用数字标识分区号如:/dev/sda1,第一分区),磁盘中盘片分为磁道(track)每个磁道由多个扇区(sector)组成每个扇区512个字节,0磁道0扇区被称为主引导记录(MBR:Master Boot Record)用于引导启动操作系统(os),MBR512字节分为(446bytes: bootloader、64bytes: 分区表,每16bytes标记一个分区,一共只能有4主分区、2bytes: MBR有效性标记)。
8.2.3、分区(主分区、扩展分区(扩展分区不能直接使用必须分割为1个或多个逻辑分区)、逻辑分区),分区编号:主+扩展1-4,逻辑分区为5..n,fdisk可以查看磁盘信息举例:fdisk -l | grep -A 10 "^Disk /dev/[sh].*",柱面(cylinder)分区更加柱面划分,通过cat /proc/partitions也可以查看磁盘分区信息
8.2.4、查看分区:fdisk -l,创建分区:fdisk + 未使用柱面硬盘如:fdisk /dev/sdb(m查看帮助、p显示磁盘分区表、n新建分区、d删除分区、t修改分区系统id、w保存分区、q不保存分区、l列出所有已知的系统编号),新建分区需要内核重读分区表后才可使用(Centos5:partprobe,Centos6:partx -a或kpartx -af,Centos6读取2个命令需要轮流执行最后通过/proc/partitions查看内核是否识别),分区创建工具:sfdisk和parted
8.2.5、练习写一个脚本,1、提示输入一个对其执行分区的新硬件设备文件;2、提醒用户接下来的操作销毁所有的数据,你继续吗?(y或yes: 继续、n或no:退出、其它字符:提醒输错了,再来一次;)3、对磁盘新建分区:(主分区1:大小512M,主分区2:大小2G)4、创建完成后显示创建的结果;没有完善后期再修改

8.3.1、创建文件系统:mkfs : make file system,Linux内核是模块化的,这些模块支持动态装载和卸载,文件系统可能会被直接打包进内核,也可以被编译成内核模块,lsmod可以查看内核已经装载了那些模块,如果需要格式化特定文件系统,通常需要安装对应的命令工具来实现。例如用rpm或者yum来安装即可。
8.3.2、mkfs -t FSTYPE = mkfs.FSTYPE举例:mkfs -t ext3 = mkfs.ext3(mkfs.ext3 /dev/sdb1),还有个命令可以创建文件系统mke2fs它包含很多选项(-b指定块大小{1024|2048|4096}、-t指定文件系统{ext2|ext3|ext4}、-L指定卷标、-j相当于指定文件系统ext3、-i指定多少字节创建一个inode、-N 直接指定创建inode数、-m预留空间占整个分区空间的百分比(-m 2))
8.3.3、blkid查看分区文件系统信息,e2label查看设定卷标举例:e2label /dev/sdb1 hello,设定卷标为hello、tune2fs修改分区属性,块大小不能调整(-j:可以将ext2升级文件系统ext3、-L修改卷标、-m修改预留的空间百分比、-O ^FEATURE:启用指定特性,特性前加^,表示关闭此种特性)
8.3.4、因进程意外中止或系统崩溃等情况导入写入操作非正常中止时,可能会导致文件损坏,fsck修复文件系统一个文件系统修复时必须先卸载(-t指定修复文件系统(可省略自动检测以什么文件系统修复)、-a自动修复、-r交互式修复,举例:fsck -t ext3 -a /dev/sdb1),e2fsck用来修复ext文件系统(-y: 对问题自动回答为yes、-f: 强制进行检测,举例:e2fsck -y -f /dev/sdb1)、 mkfs -t vfat可以创建fat32文件系统、交换分区:swap缓解物理内存资源不够用的情况;mkswap [-L LABEL] DEVICE:举例:mkswap -L swap1 /dev/sdb2(注意在创建前需要先把分区类型修改为swap类型,用fdisk)
8.3.5、mount把需要挂载的设备或文件系统挂到某个目录中,该目录成为另一个设备或文件系统的访问入口,举例:(mount /dev/sdb1 /mnt 挂载分区),mount常用的挂载选项(-r: 只读挂载、-w: 读写挂载、-t :指定文件系统类型),查看所有挂载信息mount、cat/proc/mounts、cat/dev/mtab

8.4.1、mount -o option(async:磁盘异步I/O,sync: 磁盘同步I/O,atime/noatime: 文件和目录被访问时是更新最近一次的访问时间戳,auto/noauto:设备是否支持mount的-a选项自动挂载,diratime/nodiratime: 目录被访问时是更新最近一次的访问时间戳,dev/nodev: 是否支持在此设备上使用设备,exec/noexec: 是否允许执行此设备上的二进制程序文件,suid/nosuid: 是否支持在此设备的文件上使用suid,remount: 重新挂载举例:mount -o remount,acl /mnt,通常用于不卸载的情况下重新指定挂载选项,ro: 只读,rw: 读写,user/nouser: 是否允许普通挂载此文件设备,acl: 在此设备是支持使用facl,默认不支持,挂载方式:(mount -o acl /dev/sdb1 /mnt或开启该分区acl功能以后挂载时就不需要指定该选项:tune2fs -o acl /dev/sdb1))
8.4.2、umount卸载umount /mnt,fuser(-v 查看挂载设备上访问用户举例:fuser -v /dev/sdb1,-km直接提出挂载点上所有用户举例:fuser -km /dev/sdb1),df(-h单位换算后显示设备空间,-i显示设备inode使用情况),du(-s非精确计算当前文件夹下总体大小、-h单位换算),awk基本使用方法(awk -F:  ‘{print $1}‘ /det/passwd)
8.4.3、swapon启用交互分区,举例:swapno /dev/sdb2、swapoff禁用交换分区:swapoff /dev/sdb2、/etc/fstab字段说明(设备名、挂载点、文件系统、挂载选项、备份频率(0不备份、1每天备份、2隔天备份)、自检(0不自检、1优先自检1只能用根分区、2....9))
8.4.4、作业1、列出当前系统上的所有磁盘设备;2、让用户选择一个磁盘设备,并在选择后显示指定设备上的所有分区信息;3、询问用户是否擦除此磁盘上的所有现存分区后重新添加三个分区(y或yes: 继续、n或no: 中止脚本、其它字符则提醒用户重新输入合法的字符);4、在用户选择是后执行相应的分区操作(主分区1:512M,ext4、主分区2: 512M,swap、主分区3:2G,ext4)5、将创建的分区按如上说明分别格式为相应的文件系统;6、将主分区1挂载至/mnt/boot目录,主分区3挂载至/mnt/sysroot目录;扩展:在上述第3个步骤开始之后,先查看此设备上是否有分区被挂载,如果有,则先卸载之;

#!/bin/bash
#Date 2015-03-16
#Author xiangjin
#Description Disk re partition
echo "Current computer disk"
ls -l /dev/sd[a-z]
read -p "Select the required disk information view :" devname
fdisk -l "$devname" |grep "^\/dev"
for i in `fdisk -l $devname | grep "^\/dev" | awk ‘{print $1}‘ `;do
   if cat /proc/mounts | grep "$i";then
    echo " $i Uninstall is mounted"
    fuser -km $i
    umount $i
   else
   echo "$i no mount"
   fi
done  
read -p "Delete all partitions on the disk and rebuild a new partition [y|yes]:Continue [n|no]:quit " boolid
count=1
sumnumber=$(fdisk -l $devname |grep "^/dev" |wc -l)
while [ $boolid != "" ];do
      if [ $boolid == "y" -o $boolid == "yes" ];then
         while [ $count -le $sumnumber ];do
          if [ $count -lt $sumnumber ];then
               echo "d
               $count
               w" | fdisk $devname
         else
                echo "d
                w" |fdisk $devname
         fi
               let count++
        done
      echo "n
 p
 1
 
 +512M
 n
 p
 2
 
 +512M
 t
 2
 82
 n
 p
 3
 
 +2G
 w
 " |fdisk $devname
mke2fs -j -m 2 -b 1024 ${devname}1
mke2fs -j -m 2 -b 1024 ${devname}3
mkswap ${devname}2
if [ -d /mnt/boot ];then
   mount ${devname}1 /mnt/boot
else
   mkdir /mnt/boot
   mount ${devname}1 /mnt/boot
fi
if [ -d /mnt/sysroot ];then
 mount ${devname}3 /mnt/sysroot
 else  
 mkdir /mnt/sysroot
 mount ${devname}3 /mnt/sysroot
fi
swapon ${devname}2
      exit 44 
      elif [ $boolid == "n" -o $boolid == "no" ];then 
            echo "Program error"
            exit 55
      else 
        read -p "Invalid characters Please input again " boolid
      fi
done
时间: 2024-10-31 02:26:36

马哥教育第八天文件系统、mount、mke2fs、fdisk的相关文章

马哥教育视频学习笔记-shell脚本完成磁盘分区格式化

马哥教育视频学习笔记-shell脚本完成磁盘分区格式化-http://edu.51cto.com/lesson/id-28201.html 以下是脚本内容,内容比较简单,不做详解 在Linux上准备一块空闲的磁盘即可,如何分区可以在脚本内改下 #!/bin/bash # echo "Initial a disk..." echo -e "\033[31mWarning: \033[0m " #开始的说明信息,其中Warning以红色字体显示 fdisk -l 2&g

马哥教育M28-第5-7天的学习总结

马哥M28-第五天. linux安全的上下文: 进程的发起者       命令       对象 root           ping        127.0.0.1 root           touch       testfile1 primary group :主要组.私有组 supplementary  group : 辅助组.附加组.公有组 /etc/passwd:(里面记录的用户的密码映射到了/etc/shadow) pwconv :将passwd当中的密码映射到了/etc/

《马哥教育协办GIAC、GOPS顶级技术峰会完美落幕》

GIAC.GOPS大会完美落幕 除了你.我.他,还有马哥教育陪你走过 马哥教育协办过多次全球大会,此次GIAC.GOPS全球互联网大会完美落幕,作为协办方我们也是很荣幸!马哥教育的创始人马哥带着马帮学员,让他们有更多的机会与大咖们交流分享,建立更广的人脉圈子. 本次大会可谓是大咖云集的一场盛会!各种技术总监.CTO. 通过本次大会就可以感受到马哥教育的教学精神.马哥教育不仅可以让你学到专业的技能,还有更多的机会与大咖们分享交流.我们不仅要学的好,丰富的人脉资源是我们职场上必要部分!相信在参加本次

马哥教育面授班-标准I/O和管道-课后小作业-2016年7月28

马哥教育面授班-7月28号作业 1 .将/etc/issue 文件中的内容转换为大写后保存至/tmp/issue.out 文件中 [[email protected] ~]# tr 'a-z' 'A-Z' </etc/issue | >> /tmp/issue.out [[email protected] ~]# cat /tmp/issue.out  CENTOS RELEASE 6.8 (FINAL) KERNEL \R ON AN \T \N \D \S MAGE EDUCATIO

马哥Linux培训马哥教育到底怎么样?马哥教育好不好?我来讲讲我的曲折经历!

2016年是我很迷茫的一年,不知道该学什么,不知道该去哪里,当时也有去培训的打算,也不确定培训什么,php?前端?or运维,同学有做PHP的,也有Java的也有前端的,也有做运维的,他们的建议我也听了不少,但是自己还是犹豫不决,怕花了钱到时找不到工作,后来感觉运维相对开发要容易一些,听同学说PHP今年也降温不少,学的人太多,没前两年好找了,当然,学得特好再另说.后来就去马哥考察了,当时去的时候是早上8点左右,看到有马哥的学员在校门口买早餐,包子,茶叶蛋什么的,我也没听课进去看看教室和学员聊了几句

【挨踢人物传】马永亮:感悟学习三境界 引领马哥教育的崛起(第19期)

[编者有话]        本期的嘉宾马永亮,一次误以为是"擅长"的选择,开始结缘计算机,然而当真正接触后才发现犹如"井底之蛙",此前的擅长根本不值一提,从天堂到地狱的落差,没有挫败他的信心和追求,反而激起了他更加强烈的求知欲望,在IT的道路上不断的成长感悟-- [本期人物档案] 个人信息: 51CTO账号:马哥教育 姓名:马永亮 性别:男 所在地:河南郑州 教育信息:研究生 关键词:马哥教育创办人 Linux系统运维专家 51CTO专家博主 51CTO学院签约讲师

马哥教育千万级PV实战大揭秘

又到了激动人心的架构实战项目实践时间,马哥教育面授班的学员都很期待这一刻的到来,因为经过此次洗礼,能让自己成长更多! 上周二,马哥教育张Sir带领18期面授班的学员们做千万PV级别的电商架构实战项目!新增的多台R710企业级服务器设备,轻松搭建大数据.云计算等高端实验环境,让实战,更加真实!相信经过这场实战的洗礼,小伙伴们架构技能会有更大提升! [张Sir生动讲解] [R710企业级服务器] [项目需求] 前期筹划阶段 马哥教育第18期面授班学员分成8个小组.每组的小组长先进行项目架构,然后按照

2016马哥教育重磅来袭--Python实战网络班

如何确保自己职场快人一步?如何成就非凡之路?前景开阔.上手容易.名师阵容.丰富一线案例的马哥2016全新python开发课程,你值得拥有! 在众多朋友的期待与欢呼中,马哥教育重磅推出了Python实战网络班. 到底马哥2016全新Python实战班都有什么特别之处呢?下面就来一睹为快吧!         如果有那么一丝丝的心动,请不要压抑自己的感情!速速联系马哥教育课程顾问们吧!(QQ:1661815153.2813150558.1660809109~)

一年一度,马哥教育年终福利全面来袭

一年一度,马哥教育年终福利全面来袭,等你来抢!扫描图片中二维码查看 满6000减200+腰枕 满8000减400+机械键盘 满10000减500+商用书包 推荐朋友送 (机械键盘.商用书包.专题课程)任选其一