09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统

启动流程

  1. 一个系统需要运行至少要三部分:内核 库 程序
    09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第1张图片
  2. 内核设计流派
    单内核设计:“中央集权制”,所有功能一个进程实现。 如Linux
    优点:效率高
    缺点:某一部分出现错误会影响整个内核
    微内核设计 :“联邦制” 每个功能都由子进程实现,才能真正执行线程模型。如 Windows,Solaris
    优点,某一部分出现错误不影响大局
    缺点,效率低

补充:
(1)驱动可以模块形式装入内核,驱动就是也可以称为模块
模块文件名与核心文件名后缀名字相同,里面存放各种模块和驱动程序
(2)系统启动时需要加载模块,然而模块在文件系统里,读取文件系统需要模块,所以
要ramdisk(centos5是模拟磁盘、centos6以上是模拟文件系统)在内存中找一个位置做为一个迷你文件系统用来存放读取文件系统所需要的的模块,加载文模块再进行根切换
(3)ramdisk:内核都有缓存机制,认为磁盘效率慢会拷贝一份到内存中,然而ramdisk本来就在内存中,所以centos5的模拟磁盘(initrd)改进到centos6的文件系统(initramfs)就不会出现拷贝问题
(4)
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第2张图片
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第3张图片
4. 启动加载内核
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第4张图片
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第5张图片
GRUB第一步先找到设定的内核位置,(第一点五步 加载驱动(文件系统驱动))第二步加载内核
在这里插入图片描述

注释:硬件本身或bootloader能识别硬盘本身而不能识别文件系统,MBR剩余空间会有能找到当前文件系统的驱动的设定

MBR组成:一共512B
446B:主引导程序(引导程序有很多,linux中的引导程序是GRUB)
grub配置文件 /boot/grub/grub.conf
64B:分区表 每个分区需要14B所以主分区最多4个
2B:magic numbe 标记MBR是否有效
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第6张图片
5.
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第7张图片
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第8张图片
补充:
SysV:启动服务起非常慢,串行进行,一个启动完另一个才能启动
Upstart:兼容SysV,可以串行启动
Systemd:自身就有解释器功能,启动进行不需要借助其他解释器
如果进行不用就不会启动,但是会发出一个假信号让服务器以为进行已经启动,直到此进
程第一次被用到时才会加载初始化
以上总结:
在这里插入图片描述

6.系统启动流程概述
(1)BIOS读取到内存中进行硬件自检
(2)如果没问题就根据BIOS设置先找移动U盘(如果坏了就不会再找下一个设备)没有再找硬盘的MBR,然后会把
MBR 的主引导程序grub加载到内存BIOS退出
(3) 然后grub通过配置根据分区表找到内核并加载
(4)内核装在驱动 加载第一个程序/sbin/init
(5)init OS初始化,执行runlevel(运行级别)相关程序
(6)runlevel 启动指定级别分服务
7.
init进程管理的服务都在 /etc/rc.d/init.d目录下有服务执行脚本,在 /etc/rc.d/下的rc[0-6]份别对应相应的运行级别中需要关闭和开启的服务脚本(都是/etc/rc.d/init.d的软连接,按照一定的排序方式命名)09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第9张图片
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第10张图片
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第11张图片
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第12张图片
其中系统启动后最后执行的一个脚本rc.local就是在这里定义的
在这里插入图片描述
/etc/rc.d/init.d中配置有软连接命名数字
第一个数字“-” 表示在那些级别下为start,- 表示默认所有级别下都为K(stop)
第二个数字 表示设置成S(start)文件时文件开头命名
第三个数字 表示设置成K(stop)文件时文件开头命名
在这里插入图片描述
8.
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第13张图片
例:
添加开机启动:
先编辑启动脚本
vim /etc/rc.d/init.d/文件名
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第14张图片
chkconfig --add 后就会自动把执行文件根据文件容创建软连接到相应级别下的目录
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第15张图片

在这里插入图片描述
9.
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第16张图片
10.
centos6
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第17张图片
11
在这里插入图片描述

grub

补充:若果不适用逻辑卷等复杂文件系统结构,boot可以不用单独分区(新磁盘)的
1.grub版本:
grub 0.x:grub legacy (centos5和centos6)
grub 1.x :grub 2 (centos7 完全重写)
2 步骤
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第18张图片
3.stage2的功能:
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第19张图片
4. grub的命令行接口 c
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第20张图片
help:获取帮助列表
help KEYWORD :详细帮助信息
find (hd#,#)/PATH/TO/SOMEFILE: 查找文件是否存在
root (hd#,#) 设置grub的根
kernel /PATH/TO/kernel_FILE :指明内核文件(先root 设置根)、额外许多参数
initrd / PATH/TO/INITRAMFS_FILE 设置为选定内核提供额外文件ramdisk(假根)
boot:引导启动选定的内核

09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第21张图片
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第22张图片
5.
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第23张图片
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第24张图片
6.安装grub 和相关配置并启动(攒一个简单系统)
补充:安装grub命令 : grub-install --root-directory=根的具体路径 具体磁盘
(1)添加一块新盘 分区格式化挂在
(2)安装grub
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第25张图片
(3)编写grub配置文件
vim /mnt/boot/grub/grub.conf
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第26张图片
(4)把根文件系统必要的目录进行创建
在这里插入图片描述
(5)可以吧bash当init来用启动第一个进程。拷贝bash配置文件、执行文件,查看相关库文件并拷贝,并切换根测试
补充:ldd本身不是一个程序,而仅是一个shell脚本:ldd可以列出一个程序所需要得动态链接库(so)
chroot 切换根
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第27张图片
(6)创建一个用Vm虚拟机,首先查看新加盘的位置,并选定这个新加磁盘,其他默认
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第28张图片
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第29张图片
(7)启动不了还需要给内核传递个selinux参数,或者早grub配置文件里指明(敲e键)
在这里插入图片描述

磁盘故障恢复

补充:
1.MBR被破坏,但未损坏分区表,系统未关机
修复方法
(1)重新安装grub:
grub-install --root-directory=/ /dev/sda
(2)进入grub命令恢复(前提必须有grub目录,相关包都有的情况下才能恢复)
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第30张图片

			1.root密码找回:
			   (1)进入单用户模式
			   				系统启动三秒内摁上下键
			   				![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212214114371.png)
			   				回进入下图,然后e键
			   				![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212214239738.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxMjE5OA==,size_16,color_FFFFFF,t_70)
			   				选择第二项继续e键
			   				![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212214308808.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxMjE5OA==,size_16,color_FFFFFF,t_70)
			   				然后直接空格然后输入1
			   				![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212214359937.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxMjE5OA==,size_16,color_FFFFFF,t_70)
			   				回车	
			   				![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212214428181.png)
			   				然后按下b进入单用户模式
			   				然后直接passwd root 修改密码
2 /dev/sda 中的整个MBR(512)模拟损坏修复:注意这个需要做备份才能恢复
				备份到另一个磁盘
				dd if=/dev/sda of=/bakup/mbr.bak  bs=512 count=1
			模拟损坏
			dd if=/dev/zero of=/dev/sda bs=512 count=1
			重启会出现
			![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212215943639.png)
			(1)挂在启动光盘进入救援模式第三行rescue(救援)回车
		
			
			![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212220051873.png)
				(2)或者挂载光盘后桥ESC键盘 输入命令进入
				![在这里插入图片描述](https://img-blog.csdnimg.cn/20200420172846497.png)
				
			其他都选yes 设置网络选择no
			![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212220207984.png)
			选择continue:扫描根分区如果找到就把根分区自动挂载到 /mnt/sysimage 
			![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212221228519.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxMjE5OA==,size_16,color_FFFFFF,t_70)
			下图是没有找到根分区
			![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212221306256.png)
			然后选择启动一个shell,选第一个回车
			![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212221349623.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxMjE5OA==,size_16,color_FFFFFF,t_70)
			然后出现下图内容,所看到的东西是光盘的东西
		![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212221521721.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxMjE5OA==,size_16,color_FFFFFF,t_70)
			然后查看磁盘分区,可以看到因为MBR分区表破坏掉了所以sda没有分区,而sdb有一个分区,我们把MBR备份了sdb一份所以可以直接复制回来完成恢复
			![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212221709168.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxMjE5OA==,size_16,color_FFFFFF,t_70)
			先建一个子目录挂在sdb 备份还原
			![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212221906894.png)
			然后exit退出找到Reboot重启就回复了
			![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212222020431.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxMjE5OA==,size_16,color_FFFFFF,t_70)
3 MBR中分区表没有破坏但是grub损坏:这个没有做备份也可以恢复
	模拟破坏grub
	dd if=/dev/zero of=/dev/sba bs=446 count=1
	现象跟MBR损坏一样
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212222551268.png)
	步骤跟MBR一样挂在启动光盘进入救援模式,但是在点击continue扫描的时候就能够找到根分区并自动挂载
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212222808352.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxMjE5OA==,size_16,color_FFFFFF,t_70)
	然后会提示发现界面
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20190212222832414.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxMjE5OA==,size_16,color_FFFFFF,t_70)
	回车 选择shell项 然后出现命令行,根据提示执行 chroot  /mnt/sysimage 挂在真正的根分区而不是光盘模拟的根了
	然后grub-install /dev/sda   通过命令进行重装grub启动程序 然后exit退出重启 
	![在这里插入图片描述](https://img-blog.csdnimg.cn/20200420173925151.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxMjE5OA==,size_16,color_FFFFFF,t_70)

4 MBR中grub程序中的配置文件出现故障
模拟移除grub.conf配置文件
mv /boot/grub/grub.conf /tmp
现象
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第31张图片
因为硬盘的grub在所以不会再去找光盘所以需要进入bois设置光盘启动顺序
虚拟机进入的话下图按钮然后选择最后一项,服务器的话根据提示按F2进入bois
开关按钮→打开电源室进入固件
在这里插入图片描述
选择CD-ROM启动然后按+号上移
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第32张图片
F10退出保存
然后重启光盘引导进入救援模式
然后chroot /mnt/sysimage 挂在根分区
然后或者备份恢复或者手动重写grub.conf 配置文件
在这里插入图片描述
也可以直接敲命令安装grub
exit退出重启
4.1 补充:
UEFI:UEFI启动可以看作是Bios的升级版,功能更强大。被看作是有近20多年历史的BIOS的继任者,其优势在于可以提高电脑开机后,进入操作系统的启动速度。
更安全
启动灵活
支持容量更大:
由于传统BIOS的MBR限制他的分区数量与大小都是由限的,随着硬盘价格的不断走低和普及UEFI支持更大容量会越来越成为主流
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第33张图片
GPT:
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第34张图片

内核管理

1.内核由核心和模块组成,模块有三类:不启用、集成到内核、作为模块单独存放
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第35张图片

09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第36张图片
模块相关命令
3.
在这里插入图片描述
4.
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第37张图片
5.
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第38张图片
6.生成的依赖关系文件在/boot/下的一个 *.map的的文件
在这里插入图片描述
7.与modprobe区别在于不能解决依赖关系,装在模块是必须要指明绝对路径需结合modinfo来用 ,卸载命令时可以不用指定路径
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第39张图片
8.修改/proc临时有效
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第40张图片
例:
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第41张图片
9.永久有效可以再配置文件 /etc/sysctl.conf 配置
补充:路由转发功能 :同一个机器不同网卡可以互相转发
查看方法
sysctl -a 查看所有内核参数
或者以下两种方法
在这里插入图片描述
然后 sysctl -p 立即生效

补充:回收缓存

09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第42张图片
补充:
在这里插入图片描述
10.
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第43张图片
11.
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第44张图片
12.内核编译
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第45张图片
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第46张图片
过程:
(1)下载解压内核到制定目录
(2)做内核软连接
(3)复制模板到内核文件目录(现有模板包含所有本机识别的硬件驱动模块)
(4)编译
【5】编译内核时间很长,为了关闭中断而不会中断进程可以介质screen(倭终端工具)
(6)安装模块
(7)安装
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第47张图片
make install 可以实现:
在这里插入图片描述
补充:screen:
创建:直接screen 回车 会开启一个新的虚拟中端
剥离: ctrl +a,d
退出并关闭:exit
查看(创建的所有screen):screen -ls
切换: screen -r #
13.内核编译的步骤
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第48张图片09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第49张图片

例:
make ARCH=arm help
在这里插入图片描述

磁盘及文件系统管理详解

  1. 硬件都是由驱动程序进行驱动使用,内核中往往会包含现有比较常用的硬件的驱动,当然对于不常用或者新型硬件也是没有对应驱动程序的,就需授权给硬件生产商对自己硬件驱动程序的研发(所以硬件可能携带恶意程序,当然也有各种安全认证机制)
    1.2 硬件IO设备通知内核过程:
    每一个IO设备在系统启动后有一个IO端口(又叫IO设备地址:硬件层次)一共有16位表示(可以表示几万个位置),每个IO设备对应几个位置,每当IO产生硬件就会尝试出发cpu上的IO事件,然后CPU再出发内核获取其IO内容
    1.3 再linux上一切皆文件,对于IO设备也是一样,设备文件会关联至一个设备驱动程序,进而能够与对应设备进行通信,所以对于linux系统调用而言只需要把所有硬件接口当文件接口,打开文件写入会变得格外简单方便
    1.4 机械硬盘
    在这里插入图片描述
    09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第50张图片
    转速越快,读取或存储效率也就越高性能越好
    越外面的的磁道效率越好所以windos C盘总是E盘效率高很多
    1.5 机械硬盘与固态硬盘的区别:
    传统的机械硬盘(HDD):运行主要是靠机械驱动头,包括马达、盘片、磁头摇臂等必需的机械部件,它必须在快速旋转的磁盘上移动至访问位置,至少95%的时间都消耗在机械部件的动作上
    固态硬盘(SSD):SSD不同机械构造,用集成的电路代替了物理旋转磁盘,无需移动的部件,主要由主控与闪存芯片组成的SSD可以以更快速度和准确性访问驱动器到任何位置
    1.6 用户进程怎样读取硬盘
    进程发起系统调用,工作转给内核
    内核通过控制总线把数据从硬盘读入内存
    1.7 怎样从磁盘中找到数据读入内存
    cpu发起的逻辑指令通过驱动转换成对应设备的 控制机制(控制芯片)
    控制器:主板上链接硬盘的接口(需要协议传递信号)
    协议:双方都准守的传输规则,不同的线路协议不同、接口不同
  2. 磁盘存储有两部分,一个是存储表(没有数据)只是用来检索快速查找用,一个数被分为很多存储快来存储数据
    磁盘用时间久了或经常性的增删文件就会使文件存储快不连续出现文件碎片,读取速度会很慢
    磁盘删除是把存储表标记为空,而原有的数据不变,再有新的数据存入会直接覆盖,所以很多工具即使你删除了
    内容也 是可以回复的
  3. 磁盘根据逻辑快大小和硬盘大小分为一定的组,组结构如下:
    第一行 BootBlock 预留的,一台电脑装多个系统时使用 Blocakgroup 磁盘块
    第二行 分别是:超级快、快组信息、块位图、inode位图、inode表、块
    09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第51张图片
  4. 软连接 再存储表里面存的是原文件的目录所以大小只是这个路径的描述大小
    权限都是777,所以权限跟软连接没啥关系,跟源文件的权限有关
    硬链接 直接指向原存储的文件,所以大小是原文件的大小
    下图 ll命令:数字表示本文件被硬链接的次数
    在这里插入图片描述
    09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第52张图片
  5. 设备文件
    创建命令:mknod [选项] 设备目录和名字 类型 主设备号 次设备号
    在这里插入图片描述
    -m MODE
    09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第53张图片

设备文件不占空间,只是在磁盘存储表中指向设备所在位置 09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第54张图片

  1. VFS:不同种类的文件系统会调用不同种类的端口,所以在端口的上层有一个了类似于库的VFS软件来统一管理这些端口,这样mkfs就能格式化创建多种文件系统,也使得linux支持众多文件系统
    6.1硬盘接口类型和接口速率及表示名称:
    09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第55张图片
  2. 文件格式
    windos : FAT32、NTFS
    网络文件系统(网上邻居) CIFS
    光盘:ISO9660
    linux:ext2、ext3、ext4、xfs、jfs、reiserfs、swap、btrfs
    网络文件系统:nfs ocfs2 gfs2
    虚拟文件系统:VFS(消除底层不同文件系统的差异,统一成一种接口都可以被同一种工具管理。例 mkfs)
    unix: FFS,UFS,JFS2
    集群文件:GFS2、OCF2
    分布式文件系统:ceph,moosefs,mogilefs,GlusterFS, Lustre

补充:常见系统对比

7.1
在这里插入图片描述
7.2 查看现在系统所支持的文件类型(没标注 nodev 的说明是正在使用的文件系统)
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第56张图片
7.3 查看内核中已经装在的模块
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第57张图片
8.1 分区管理工具
在这里插入图片描述
创建分区
l = L作用相同都是查看支持的类型
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第58张图片
8.2 查看内核能识别的分区表、重读分区表(partprobe)
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第59张图片
8.2.1 partx -a 分区名字 :重新检测分区表(注意:centos6与7这个命令用法不同)
8.2.2 kpartx -a 分区名字:同partx -a
8.2.3 centos5 上没有这两个工具 可以用 partprobe

  1. ext2非日志文件系统
    exi3 日志文件系统,保存时先把文件保存在一个日志空间中,就算断电也能很快检索出损坏文件位置

  2. 查看当前内核支持哪些文件系统
    在这里插入图片描述

  3. 创建文件系统
    09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第60张图片
    -f 强制创建
    Filesystem label= 卷名
    OS type 系统类型
    Block size=4096 块大小
    inodes 数量 blocks 块数量
    5.00% 预留大小
    8 block groups 8个组
    每个组的块数量、偏移量、inodes数量
    Creating inode 日志
    09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第61张图片

  4. mke2fs -t {exit2|exit3|exit4	}
    

09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第62张图片
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第63张图片
11.1.1 检查文件系统相关命令
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第64张图片
11.1.2
在这里插入图片描述
-y:自动回答为yes

  1. 挂载
    09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第65张图片
    -o:制定额外的挂在选项,也即制定文件系统启用的属性
    loop:挂载本地回环设备(iso镜像)
    async: 异步写入:内存中修改的内容过一会再存入磁盘, 优点:速度快 缺点,断电易丢失
    sync : 同步写入: 内存中修改的内容同时修改同时写入磁盘, 有点:断电不丢失 缺点,磁盘性能比内存差很多,进行操作时速度会非常慢
    atime/noatime :(包含目录)是否 每次写入都要更新时间戳 占IO
    diratime/nodiratime:是否每次写入都更新目录的访问时间戳
    auto/noauto : 是否支持自动挂载(默认自动挂载)
    exec/noexec 是否支持运行挂在分区中的程序运行
    dev/nodev: 是否支持在此文件系统上使用设备文件
    suid/nosuid:s权限
    user/nouser:是否允许普通用户挂在此设备
    acl/noacl : 是否启动控制访问列表(centos6上默认没启动,centos7上默认已经启动)
    remount 重新挂在
    ro:只读挂在
    rw:读写挂在
    在这里插入图片描述

例:
在这里插入图片描述
13. fuser
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第66张图片
14. 交换分区
(1)物理内存被分成好多片,每个进程运行时都会被虚拟出例如4G内存,存放数据时映射到物理内存中的一片区域(不连 续的)所以可以多个进程同时运行
(2)交换分区作用: 物理内存资源用完,会把物理内存中其中不经常用到的数据存放在硬盘所创建的交换分区中,等到用到时在读取到内存再把其他频率少的数据存放在交换分区中,这样就可以透支内存使用,提高服务器性能
(3)free -m 查看内存
在这里插入图片描述
其中buffers/chached 为缓冲区是为了提高服务器性能:安装读取效率由高到低 cpu计算器、cpu缓存、内存、交换分区,缓冲区是为了更好地衔接缓冲不同读取速率差异的,即使他们里面的数据删除也不会丢失数据,所以真正的使用的内存要 - 缓冲区大小 空闲内存是 + 缓冲区大小
(4)新建交换分区
fdisk /dev/sda
n 新建
t 调整分区类型
8 第八个分区
L 查看分区类型
82 swap分区类型
partprobe 通知内核重新读取
mkswap /dev/sda8
[-L] 设置卷标
swapon /dev/sda8 启用交换分区
-a 启用所有的定义在/etc/fstab文件中的交换分区设备
swapoff
15.
在这里插入图片描述
16. dd命令(复制)
(1)与cp的区别:
cp:是要把文件读到内存中复制这一整个文件
dd:直接复制文件的二进制,可以设定复制的字节数,可以不完整复制文件
(2)相关参数
if=数据来源
of=数据存储目标
bs=1 单位(以多大为一个单位)
count=2 复制几个单位
例:备份MBR
在这里插入图片描述
例模拟创建一个交换分区设备:
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第67张图片
(3)其他参数
seek 跳过假的,但查看的话还是包含跳过去的空间大小,实际没有
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第68张图片
17. /etc/fstab文件
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第69张图片
如何让一个文件系统自动挂载的同时启动acl
(1)
在这里插入图片描述
(2)格式化的时候tune2fs
18.df
-h 单位换算
-i 查看inode使用情况
-P 不换行显示

btrfs文件系统

1.核心特性
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第70张图片
2.文件系统创建:(其中-m为元数据存放方式 -d为数据存放方式)
09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第71张图片
例:
在这里插入图片描述
3.查看
可以用 blkid
也可以 btrfs filesystem
show 显示
–all-devices (显示所有,包括未挂载的)
sync 内存中的缓存数据保存到磁盘
df 查看已挂在的磁盘空间使用率
defagment 碎片整理
label 指明或显示卷标
resize 修改磁盘大小
例:
在这里插入图片描述
或调整为最大
在这里插入图片描述
然后查看
在这里插入图片描述
4.管理设备
btrfs device
add:添加设备
delete:移除设备(移除设备时会自动转存数据到别的盘上,所以可以直接移除)
scan :扫描设备
stats :显示IO统计数据
例:
添加:
在这里插入图片描述
s
5.透明压缩机制(DEVICE:挂载的设备 MOUNT_POINT:挂载点)
在这里插入图片描述
6.数据均衡操作、修改raid级别 (如果新加入的盘,可以把已满磁盘数据均衡到其他磁盘上)
btrfs balance
start 启用此功能(注意数据太多的话时间会很长)
-d:修改数据的组织机制
-m:修改元数据的组织机制
-s:修改系统的组织机制
在-d/-m 后面可以加
convert 修改成哪种组织机制
常见组织机制:
在这里插入图片描述
例:
在这里插入图片描述
cancel 停用此功能
pause 暂停此功能
resume 继续此功能
status 显示此功能状态
7.创建子卷、快照
btrfs subvolume
create 创建子卷
delete 删除子卷
list 列出
snapshot 快照
show 查看子卷的详细信息
例:
创建并查看子卷
在这里插入图片描述
7.1 单独挂在子卷(单独挂在子卷时,其他子卷无法使用)

在这里插入图片描述
查看 09 系统启动 grub 磁盘故障恢复 内核管理 磁盘及文件系统管理详解 btrfs文件系统_第72张图片
删除
在这里插入图片描述
创建快照
在这里插入图片描述
对一个文件创建快照
在这里插入图片描述
8.ext与btrfs文件系统之间的转换
先强制监测一下
fsck -f 如果没问题
btrfs-convert /dev/sd1
然后 btrfs filesystem show 查看

			还原成ext系统
			btrfs-convert -r /dev/sd1
			blkid 查看

你可能感兴趣的:(学习笔记)