Loading

八、 文件系统管理

磁盘管理

(1) MBR分区表
		1.  主引导程序(boot loader)占用了 446byte
				安装操作系统时写入引导程序
		2.  分区表(Partition table)占用了 64byte
				(每个分区信息16b,可存储4个分区信息)
		3.  有效标志符(magic number)占用了 2byte(55AAH 代表有效)
				标志MBR分区表是否生效
(2) 主引导扇区的读取流程:
① BIOS 加电自检 ( Power On Self Test -- POST )。BIOS 执行内存地址的跳转指令,跳转到固化在 ROM 中的自检程序处,对系统硬件(包括内存)进行检查。
② 读取主引导记录(MBR)。当 BIOS 检查到硬件正常并与 CMOS 中的设置相符后, 按照 CMOS 中对启动设备的设置顺序检测可用的启动设备。BIOS 将相应启动设备的第一个扇区(也就是MBR 扇区)读入内存。
③ 检查 MBR 的结束标志位是否等于 55AAH,若不等于则转去尝试其他启动设备,如果没有启动	设备满足要求则显示“NO ROM BASIC”然后死机。
④ 当检测到有启动设备满足要求后,BIOS 将控制权交给相应启动设备。启动设备的 MBR 将自	己复制到 0000:0600H 处,然后继续执行。
⑤ 根据 MBR 中的引导代码启动引导程序。

数据存储的层级

	表示层:文件名
	逻辑层:文件系统(data-block:4k)	super-block高级格式化
	物理层:扇区(512byte)		分区表(MBR-64byte)低级格式化
		格式化:写入文件系统(写入存储规范)

文件系统

super block:超级块,记录每个分区的 block 的大小、数量;块位图(已使用和未使用的 inode和 block 的数量);文件系统挂载时间,最后修改时间,最近检查时间。
		块位图:记录最后一个文件的存储位置和所有未存储的数据块位置
	data block:数据块,保存真实数据的位置,block 的大小和数量在格式化成文件系统时已经固定, 除非重新格式化,否则不能修改。单个文件占用小于一个 block 的大小时,单独占用一个 block,剩余空间不会被利用。inode:别名 i 节点;记录 inode 号、权限、属主属组、时间戳、大小、占了哪几个 block
inode 显示的数据又叫文件的元数据

磁盘管理命令

	df -ahT 参数				以常见单位显示文件系统类型,包括挂载(a-所有,h-人性化显示,T-类型type)
	du -sh	参数				查看文件大小(包括其内文件大小之和)(s-和,h-人性化显示,a-每个文件)
	du -h  -x --max-depth=1	查看当前目录下一级目录的空间大小
	fsck -y 分区名			自动修复出现问题的文件系统
	dumpe2fs -h 分区名		详细显示磁盘状态
	stat 文件名				查看文件详细信息
	file文件					判断文件类型
	type命令名				判断命令是外部命令还是内置命令
	fdisk -l				查看系统所有硬盘及分区

MBR分区

1) 普通分区
	fdisk 设备名		分区
		p:打印分区表
		n:新建一个新分区
		d:删除一个分区
		m:输出菜单
		q:不保存退出
		w:把分区写进分区表,保存并退出
	mkfs -t ext4 分区设备名称		格式化(-t:指定文件类型)
	mke2fs –text4 –b4096 –i4096 /dev/sdb1	格式化(b-指定block大小,i-多少个block分配一个	inode号)
	mkfs.* 分区设备名称		格式化(*代表文件系统)
2) 创建swap分区
			① fdisk /dev/sdb1
				--t  --1  --82  --w
			② mkswap /dev/sdb1		格式化
			③ swapon /dev/sdb1		启用swap分区
			④ vim /etc/fstab		将swap分区添加到配置文件,实现自动挂载
			⑤ mount -a				检查/etc/fstab是否错误
			⑥ free					查看实际swap分区大小
3) 编辑/etc/fstab 系统开机自动挂载文件
	1.  设备文件名(UUID)UUID:/dev/disk/by-uuid
	2.  挂载点
	3.  文件系统类型
	4.  挂载特殊选项
	5.  是否备份:  0 不备份 1 每天备份  2 不定期备份
	6.  是否检查磁盘状态: 0 不检查 1 启动时检查 2 启动后检查
4) 修复启动文件错误  /etc/fstab
	1)根据提示输入所需的 root 密码,那么修改下/etc/fstab
	2)对/目录进行重新挂载成读写rw
		mount  -o  remount,rw  /
	3)修改/etc/fstab 中的错误

GPT分区表

    GPT(GUID Partition Table)"全局唯一标识磁盘分区表" ,主要用来代替 MBR 分区表,突破存储限制。
GPT 分区表的构成
		◆ LBA 0 :GPT 分区的最开头,考虑兼容性问题,开头仍然存放 MBR 分区表,只是里面存放的
是指向 GPT 的指针。防止有一些系统不识别 GPT 分区表。
		◆ LBA 1 :存储了硬盘的总存储空间,以及 GPT 分区表的信息,定义最多能创建 128 个分区,每个分信息占用的空间是 128 字节;128 个分区中有一个是用来存储备份分区表的,所以可以手动指定的分区数为 127 个分区。
		◆ LBA 2-33:每个分区信息存放的位置,每个分信息占用的空间是 128 字节。2-33
正好是 32 个扇区。32*512=16384,每个分区信息占用了 128 字节,16384/128=128 个分区。
	LBA0(0磁道,1扇区)	LBA1(0,2)	LBA2(0,3)	……	LBA33(0,34)
主引导程序
446byte	分区表

64byte	有效标志符
2byte	总大小,gpt分区表信息
512byte	存储4个分区信息,每个128b
512byte	……
……
……	存储4个分区信息,每个128b
512byte

GPT分区操作

	parted /dev/sdb1
		① print 		查看
		② mklabel		修改分区表类型	
			MBR—-> msdos		GPT—-> gpt
		③ mkpart		创建分区	起始点5G,结束点 10G
			无保存选项,每次操作直接保存
		⑤ quie		退出
		⑥ mkfs		格式化
注:
1) UUID查看:blkid	
		blkid -o list			列表方式查看详细信息
		blkid -s TYPE			显示所有设备文件系统
		fsck -y /dev/sdc		修复文件系统异常
		partprobe /dev/sdc		修复文件系统异常
2) 添加新硬盘
	查看主机总线号
	[root@localhost ~]# ls /sys/class/scsi_host/ 	host0  host1  host2
	依次扫描总线号
	[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host0/scan  
	[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host1/scan  
	[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host2/scan	  
	如果有多个,则使用循环
	[root@localhost ~]# for i in /sys/class/scsi_host/host*/scan;do echo "- - -" > $i;done  
posted @ 2019-07-11 15:57  Outsrkem  阅读(216)  评论(0编辑  收藏  举报