作业要求

1.图文并茂

2.看清题意,提供清晰、正确的答案。

3.工作里,连文档都看不清,缺一步、漏两步,必然要被领导喷。

作业题

  1. 绘图如下的磁盘管理流程,需要学习哪些内容
1.磁盘物理知识
	固态硬盘、机械硬盘
	磁盘内部结构了解
	机械硬盘工作原理了解
2.磁盘阵列知识,lvm
	还没学
3.磁盘分区
	mbr分区类型下
		4个主分区、扩展分区、   编号5开始 逻辑分区
	gpt(guid)分区类型
		128主分区
		
	mbr===============fdisk命令=====2T以下磁盘
	gpt===============gdisk命令===========超过2T硬盘
	
	mbr <--------------> gpt 类型转换------------parted命令转换
	使用mktable或mklabel都可以转换其类型
	
	mbr >>>>>> gpt
	parted /dev/sdc1
	mktable gpt
    
    gpt >>>>>>>>> mbr
    parted /dev/sdc1
	mktable msdos
    
    
	
4.磁盘格式化,是指给分区,添加文件系统 
	mkfs命令
	mkfs.文件系统类型
	
	centos6到以前
	mkfs.ext4
	
	如今centos7到最新的
	都是mkfs.xfs文件系统
	
	
	
5.磁盘后期管理命令
	df 查看磁盘挂载情况,以及分区使用率
	
	lsblk
		列出所有的硬盘,以及分区
	fdisk
		给硬盘添加,修改,删除分区信息的
	blkid
		uuid是通过计算机程序,算出来的一串数值
		uuid是一个全局唯一id号,是以机器的硬件的出厂id号,以及当前的时间,等一堆信息,计算出一个全世界唯一的id号
		
		
		
	xfs_info 查看xfs文件系统的信息
		xfs_info /dev/sdb 查看这个sdb分区,分配了多少个block,以及inode数量

	xfs_growfs
		学了lvm技术之后,动态调整分区的容量
			/dev/sdb1  当前是20G + 10G =30G 不影响当前硬盘的程序运行
			你想调整分区的容量,必须告诉文件系统也跟着调整,才能用
			
    	xfs文件系统扩容后,动态增加其文件系统容量
	

2.机械磁盘有哪5个主要组成部分?以及作用是?

内部零件:
机械手臂
磁头
盘片
主轴马达
硬盘接口



盘片原理
磁头(head)数:每个盘片一般有上下两面,分别对应1个磁头,共2个磁头;
磁道(track)数:磁道是从盘片外圈往内圈编号0磁道,1磁道...,靠近主轴的同心圆用于停靠磁头,不存储数据;
柱面(cylinder)数:同磁道数量;

扇区(sector)数:每个磁道都别切分成很多扇形区域,每道的扇区数量相同,扇区大小是0.5KB是512字节,
touch /opt/hehe.log
文件的数据,是存储在硬盘中的block块中,也就是多个连续的扇区中

文件存储在硬盘中,最小存储单位就是扇区。



磁头读取扇区数据,是读取连续的多个扇区,称之为block(块)
圆盘(platter)数:就是盘片的数量。




3.磁盘接口类型有哪五种?提供对应接口图片。

让大家找图片,也是希望大伙自己去主动搜资料,探索硬盘长啥样,心中有数

sata接口

m2 nvme协议接口
买硬盘,看到nvme相关的商品信息,基本价格翻一倍

msata接口

sas接口
pcie接口


4.磁盘分区表类型有那两种?以及对应区别是?

mbr

gpt

1、MBR分区表最多只能识别2TB左右的空间,大于2TB的容量将无法识别从而导致硬盘空间浪费;
GPT分区表则能够识别2TB以上的硬盘空间。

2、MBR分区表最多只能支持4个主分区或三个主分区+1个扩展分区(逻辑分区不限制);GPT分区表在Windows系统下可以支持128个主分区。

5.系统分区类型有哪3种?对应特点是?

主分区,比较小的容量
在第一块硬盘(windows,得在第一块盘上,安装c盘,系统启动的分区)
/dev/sda上安装操作系统

其他几块盘,直接作为一个整体,再买2块盘

/boot分区
一个硬盘的主分区也就是包含操作系统启动所必需的文件和数据的硬盘分区
要在硬盘上安装操作系统,则该硬盘必须得有一个主分区。


扩展分区
扩展分区也就是除主分区外的分区,但它不能直接使用,必须再将它划分为若干个逻辑分区才行。




逻辑分区(重点在这,我们格式化分区,使用存储的分区,都是逻辑分区)
数据一般都是存储在逻辑分区里


6.linux系统分区的命名规则是?从如下角度解释

参考该文档即可

https://www.debian.org/releases/sarge/i386/apbs04.html.zh_TW

1.按硬盘类型命名
IDE接口硬盘,早期硬盘 /dev/hda   /dev/hdb

SCSI、sata、 SAS 接口硬盘 /dev/sda


2.按分区数量命名
/dev/sda1
/dev/sda2
/dev/sda3




7.描述如下分区的具体含义

mbr

/dev/sda1
第一块硬盘的第一个主分区

/dev/sdb2
第二块硬盘的第二个主分区


/dev/sdc6
第三块硬盘的第二个逻辑分区


mbr表下
1,2,3, 4 都是主分区

5,6,逻辑分区号


8.根据如下要求,创建新磁盘分区,分步骤,截图最终结果

1.虚拟磁盘 两块
2.虚拟磁盘大小 10G
3.分区表类型 mbr
4.分区命令 fdisk 

5.分区方案1    /dev/sdc
四个主分区,每个分区2G




6.分区方案2
3个主分区,1个扩展分区,每个主分区1G,剩下都给扩展分区(这个可用容量,是指逻辑分区,所有的容量都给这个逻辑分区)




7.分区方案3
2个主分区给2G
2个逻辑分区获得所有容量



9.mbr类型的分区用什么命令管理?以及特点mbr分区特点是?

fdisk只能创建MBR分区
不支持2T以上硬盘
最多4个主分区
fdisk命令交互式命令
	m 列出常用命令
	a 切换分区
	b 编辑磁盘标签
	c 切换dos兼容模式
	d 删除分区
	g 创建新的GPT分区表
	l 显示分区类型
	n 新建分区
	o 新建DOS分区表
	p 显示分区表信息
	q 不保存退出
	t 修改分区id
	u 修改容量单位
	v 检验分区表
	w 保存并退出
	

10.应该如何给一块4TB的硬盘,全部容量分配一个主分区,且格式化为ext4文件系统使用

GPT分区
	支持2T以上的分区
	支持128个分区
	全部可以格式化
	工具使用gdisk
	
gdisk /dev/sdc

[yuchao-linux01 root ~]$mkfs.ext4  /dev/sdc1

11.如何让linux重读分区表,2个命令如何使用?

有时候,你在修改了硬盘的分区信息后,linux还未立即得知这个消息
fdisk /dev/sdc 

lsblk 看不到


就得用如下命令,重读分区表,告诉linux,这块硬盘,有新的分区了

Partx是一个简单而有用的命令行实用程序,面向维护Linux系统。 它用于告诉内核磁盘上分区的存在和编号。

查看硬盘分区表信息,列出硬盘分区信息
要求,该硬盘必须是有分区的
[yuchao-linux01 root ~]$partx  /dev/sdc
[yuchao-linux01 root ~]$partx -v  /dev/sdc
[yuchao-linux01 root ~]$partx --show /dev/sdc

如果报错,表示内核已经加载了/dev/sdc1新分区
-a 添加所有的新分区

[yuchao-linux01 root ~]$partx -a -v /dev/sdc
 
只要lsblk可看到分区即可
 
 
############ 
使用这条命令,也能够更新系统的分区表的变化

partprobe命令
partprobe - 通知操作系统分区表的变化
partprobe可以使kernel重新读取分区信息,从而避免重启系统

12.如何修改分区表的类型

parted命令

从mbr改为gpt?-------(parted) mktable gpt


从gpt改为mbr?------(parted) mktable msdos



13.如何显示硬盘/dev/sdb的分区表信息?

lsblk
	直接可看到结果
[yuchao-linux01 root ~]$lsblk /dev/sdb
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  20G  0 disk 
├─sdb1   8:17   0   1G  0 part 
├─sdb2   8:18   0   1G  0 part 
├─sdb3   8:19   0   1G  0 part 
├─sdb4   8:20   0   1K  0 part 
└─sdb5   8:21   0  17G  0 part 


fdisk
	fdisk /dev/sdb  
	然后输入p打印分区表信息

parted
	parted /dev/sdb
	输入print打印分区表信息


partx
	partx /dev/sdb

14.写出目前最主流的windows、linux、macos使用的文件系统,以及对应的文件系统特点

windows
NTFS
exFAT

macos
exFAT(主要用于闪存设备,在win和mac之间,都可以读写的文件系统)

linux(centos6、centos7)
ext3 ext4
xfs

15.机械硬盘和固态硬盘都怕啥

机械、怕摔

固态、怕断电

16.请描述以下设备表示的意思(区分于mbr、gpt两种分区表类型)

/dev/sda
/dev/sda1
/dev/sdb2
/dev/sdc3
/dev/sdd

17.完成如下分区格式化操作

1.新增加一块10G大小的磁盘,创建MBR分区类型,3个主分区,2个逻辑分区,主分区每个1G大小,逻辑分区一个2G大小,最后一个使用所有空间。


2.删除刚才创建的MBR分区,创建GPT分区类型,创建三个分区,前两个分区使用1G大小,最后一个分区使用所有空间。

3.删除刚才创建的GPT分区,创建2个分区的xfs文件系统。

4.删除刚才创建的所有分区,直接创建xfs文件系统使用整块磁盘

5.将刚才格式化的文件系统挂载到/data目录下

6.要求开机自动挂载/data,默认挂载参数,不做磁盘检查

18.绘图解释你对mount的理解

绘图,在多个硬盘之间,
默认的是/dev/sda
touch /opt/今天天气不错.log

touch /data/明天天气不知道咋样


再加一块盘 /dev/sdb1
# 挂载动作
mount /dev/sdb1  /data

touch /data/明天天气不知道咋样


19.写下fdisk命令交互式所有命令,以及对应含义

fdisk命令交互式命令
	m 列出常用命令
	a 切换分区
	b 编辑磁盘标签
	c 切换dos兼容模式
	d 删除分区
	g 创建新的GPT分区表
	l 显示分区类型
	n 新建分区
	o 新建DOS分区表
	p 显示分区表信息
	q 不保存退出
	t 修改分区id
	u 修改容量单位
	v 检验分区表
	w 保存并退出

20.写下gdisk交互式命令的所有含义

b 将 GPT 数据备份到文件
c 更改分区的名称
d 删除一个分区
i 显示分区的详细信息
l 列出已知的分区类型
n 添加新分区
o 创建一个新的空 GUID 分区表 (GPT)
p 打印分区表
q 退出而不保存更改
r 恢复和转型选项(仅限专家)
s 排序分区
t 更改分区的类型代码
v 验证磁盘
w 将表写入磁盘并退出
x 额外功能(仅限专家)
? 打印此菜单

21.知识点提示

工作里,新硬盘可以不分区,直接格式化整块硬盘,直接使用。
[yuchao-linux01 root ~]$mkfs.xfs -f  /dev/sdc

22.如何查看磁盘的唯一ID号(uuid)

blkid命令

blkid 命令:可以查看块设备(包括交换分区)的文件系统类型、LABEL、UUID、挂载目录等信息

[yuchao-linux01 root ~]$blkid
/dev/mapper/centos-root: UUID="0a7fed5a-edce-4354-aa17-2aa6781e1b85" TYPE="xfs"
/dev/sda2: UUID="S2y7zo-9SQ9-prrr-ZOtT-NdW8-vVLo-jFwngl" TYPE="LVM2_member"
/dev/sda1: UUID="c07b71e0-a0a4-41e5-9c12-24646b84c73f" TYPE="xfs"
/dev/sr0: UUID="2018-05-03-20-55-23-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/centos-swap: UUID="706d68e5-0a75-46d2-ab62-cede96863212" TYPE="swap"
/dev/sdc1: UUID="53d27e49-27d9-425f-8854-c8b24cac6047" TYPE="ext4"
/dev/sdb: UUID="755dac52-71fc-4cea-a76d-f904c55790e0" TYPE="ext4"


23.出现了如下报错,如何解决?(面试题!认真思考,用严谨的办法!)

情况1
[yuchao-linux01 root /data]$umount /data 
umount: /data: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
         
思路?
怎么看待,解决这个问题

什么是正在使用这个文件夹?
1.离开这个文件夹,再取消挂载
2. 可能其他人也在用这个文件夹,要看看他是谁


情况2
[yuchao-linux01 root /opt]$umount /data
umount: /data: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

/data下的文件被人使用中
思路
lsof 

 
 

24.如何显示磁盘挂载情况,以及磁盘容量使用率,显示友好单位。

df -h

25.请绘图解读开机自动挂载配置文件的含义。

/etc/fstab
请注意, 这个文件,别写错了,因为他是系统启动时,会加载读取的磁盘挂载文件
写错了,会导致系统报错,找不到磁盘,启动不了,进入紧急模式

案例
让/dev/sdc开机就自动挂载,且正确写法
方法1,用设备名挂载 ,挂到/test1上



方案2,用设备uuid挂载

两种写法
/dev/sdc       /test1      ext4  defaults 0 0 
UUID="7a813e49-937b-4900-96b8-434915f39b19"    /test1  ext4  defaults 0 0



26.如何生成一个5G大小的文件,提示(dd命令)

[yuchao-linux01 root ~]$dd if=/dev/zero of=/opt/5G.txt bs=100M count=50


27.linux的一些特殊文件

/dev/null
/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。比较常见的用法是把不需要的输出重定向到这个文件。
ping yuchaoit.cn > /dev/null &


/dev/zero
零”设备,可以无限的提供空字符(0x00,ASCII代码NUL)。常用来生成一个特定大小的文件。
dd if=/dev/zero of=test.log bs=1M count=50


/dev/random和/dev/urandom

/dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流。
很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流。


危险玩法,比如实现类似于shred粉碎文件的作用
[root@yuchao-tx-server ~]# dd bs=1M count=30  if=/dev/urandom of=./t1

也可以销毁硬盘分区数据
dd if=/dev/urandom of=/dev/sda5