标签:磁盘管理
磁盘管理
MBR:主引导记录(512byte)
2byte 标记MBR是否有效
64byte 标示分区
16byte标示一分区,一个磁盘只能标示四个主分区
446byte 引导程序
主分区不能超过四个,主分区加扩展分区不能超过四个,扩展分区只能有一个,扩展分区里可以分逻辑分区,扩展分区只有分逻辑分区才使用。
磁道越靠外,读写速度越快,所以把经常访问的数据(c)盘一般在外磁道,借此来提高读写速度。
硬链接:创建目标的副本
会增加对文件的连接次数
不能对目录创建,只能对文件创建
不能跨文件系统
软连接(符号链接):如window的快捷键方式
不会增加文件的连接次数
可以用于目录
可以跨文件系统
其大小为文件名字符大小
几个命令
ln:创建硬链接
-s 创建软连接
du:显示目录中的文件列表并显示文件的大小
-s 仅显示目录本身的大小
-h 更直观的显示信息
-a 递归显示目录及其子目录占用的磁盘空间的大小
df:显示文件系统的磁盘空间占用情况
-h 方便阅读方式显示
-i 显示inode的信息
-p 输出格式为POSIX
设备文件(/dev)
块设备(b):以块为单位访问数据,随机设备
字符设备(c):以字符为单位访问数据,线性设备
/dev
主设备号:标示设备类型
次设备号:标示同种设备类型的不同设备
mkond [option] Name type [主设备号 次设备号]
-m 指定权限
硬盘设备的设备文件名(a,b,c,d标示同种类型下的不同设备)
IDE:hd
SATA:sd
SCSI:sd
USB:sd
hda1:IDE类型的第一块硬盘第一主分区
hda2:IDE类型的第一块硬盘第二主分区
hda3:IDE类型的第一块硬盘第三主分区
hda4:IDE类型的第一块硬盘扩展分区
hda5:IDE类型的第一块硬盘第一逻辑分区(逻辑分区从5开始)
hdb1:IDE类型的第二块硬盘第一主分区
hdb2:IDE类型的第二块硬盘第二主分区
fdisk:查看磁盘设备列表
fdisk -l 列出当前系统识别的磁盘设备及其分区情况
管理磁盘分区
fdisk /dev/sda (指向设备而不是分区)
p 显示当前硬盘的分区,包括未保存的改动
n 新建分区
d 删除分区
t 修改分区文件系统类型
l 显示支持的文件系统类型
w 保存退出
q 不保存退出
当扩展分区分好后不能立即使用,扩展分区只是一个指针,指向另外的分区表。所以我们还要建立逻辑分区才能使用。
当新建完分区后,cat /proc/partitions ,发现内核尚未识别新建分区,我们要使用partprobe重新读取分区。
partprobe(不加参数) 读取所有磁盘的分区
partprobe /dev/sda 读取sda磁盘上的所有分区
文件系统
文件系统工作在内核,不同的文件系统所需调用的借口和命令不相同,需要VFS(虚拟文件系统)进行统一转换,使得一套命令能够支持多套的文件系统
一个磁盘的文件系统格式
boot Block :引导块(引导装在MBR上,这里一般装双系统是会用到)
Block Group 1
super Block :超级块(存储1.有多少个块组,每个块组包含多少块磁盘块,一块磁盘块的大小;2.空闲磁盘块和已用磁盘块的数量;3.空闲inode号以及已用的indoe数量等;超级快非常重要,一般都会有备份)
GTO:快组描述符(存储1.当前系统有多少块组;2.每个块组的起始磁盘块和结束磁盘块。同样有备份)
块位图:管理空闲数据块
inode位图:用一个bit表示indoe号是否空闲
indoe表:储存indoe号,文件的属组属主、权限、大小、时间戳、对应的磁盘块
磁盘块:存储数据
Block Group 2
Block Group 3
.....
Block Group n
1、为了方便查找和管理,把一定数量的磁盘块归到一个块组中去
2、超级块、快组描述符、块位图、inode位图、indoe表统称为元数据,都属于逻辑上的。
3、目录不是容器,目录也是文件,存储在一个磁盘里。
4、文件查找过程:如查找/var/log/message,先在磁盘里找到/,因为/是自引导的,所以/会被找到,接下来找到跟对应的inode条目——找到对应的inode号——依照inode号(全局唯一,一个inode对已一个磁盘块)找到跟对应的磁盘块,里面存储跟里面的文件,包括var(目录名)——
由var找出var对应的inode条目——找到var对应的inode号——找到var对应的磁盘块——再到message和其对应的inode号——找出message对应的磁盘块,里面就是message的文件内容
5、任何一个作为访问入口的关联点一定是独立在这个访问入口指向的分区之外的。比如/var指向2号分区,那么/var一定是在2号分区之外的分区,如果在/var中创建文件a,那么a是在存储在2号分区中,而不是在/var所在的分区中。
当分区建好后,我们要为其创建文件系统
创建:
mkfs:创建文件系统
-t 创建ext类型
mkfs -t ext4 /dev/sda5
-L 创建卷标(和-t 一起用)
mkfs -t ext4 -L zzs /dev/sda5
mkfs -t ext2 = mkfs.ext2
mkfs -t ext3 = mkfs.ext3
mkfs -t ext4 = mkfs.ext4
mke2fs:专门管理ext2类型的文件系统
不跟任何选项标示创建ext2格式的文件系统
mke2fs /dev/sda5
-j 创建ext3格式的文件系统
-L LABEL 指定分区卷标
-m 指定预留给超级用户的块数百分比
-i 指定多少字节空间创建一个inode,默认是8192,这里的数值应该是块大小的2^N倍
-N 指定inode的个数
-F 强制创建文件系统
-E 指定额外的文件系统属性
查看:
blkid:查看磁盘分区的基本属性
blkid /dev/sda
UUid 文件格式类型 卷标
e2label:查看和定义卷标
e2label /dev/sda5 查看卷标
elabel /dev/sda5 zzs 定义卷标
dumpe2fs:显示文件属性信息
dumpe2fs /dev/sda 显示磁盘的信息(非常详细)
-h 只是显示超级快的信息
修改:
tune2fs:调整和修改文件的相关属性
tune2fs option /dev/sda
-L 修改卷标
-m # 修改预留超级用户块数的百分比
-r # 修改预留超级用户块数的块数
-c # 挂载次数达到一定时进行自检。0或-1表示关闭此功能
-i # 挂载天数达到一定时进行自检。0或-1表示关闭此功能
-l 显示超级快的信息
检测:
fsck:检测修复linux文件系统
-t fstype 这里一定要写对文件格式类型,否则检测时就算没问题也会提示出错
-a 自动修复
e2fsck:专用于ext格式的文件系统
-f 强制检查
-p 自动修复
linux支持多种文件系统,不代表你的内核也支持
不要对整块硬盘建立文件系统,对硬盘里的分区建立文件系统,提高安全性
ext3比ext2多出日志功能
磁盘块的大小默认为4096,可取值为1024,2048,4096.当分区存储大量小文件可以使用1024值,来提高I/O速率
挂载:将新文件系统关联至当前跟文件系统
卸载:将某文件系统和跟文件系统的关联关系移除
mount:挂载命令
mount [option] [-o option] 设备 挂载点
设备:设备文件
卷标=" "
UUID=" "
挂载点要求:1、必须是目录
2、目录事先存在
3、目录中的文件会暂时隐藏起来
[option] [-o option]
-a 挂载/etc/fstab下的所有设备
-n 默认情况mount每挂载一个设备都会把挂载的设备信息保存至/etc/mtab文件。使用-n 则不把信息写入/etc/mtab
-t type 指定挂载文件类型。当没有指定时,mount会调用blkid去读取
-r 只读挂载,一般光驱用
-w
-o:指定额外的挂载项(文件系统启用的属性)
-remount 重新挂载
ro: 挂载只读
当没有任何选项时,mount显示当前已经挂载的设备及其挂载点和挂载属性
挂载完成后,要通过挂载点访问对应的文件系统文件
swap分区
free:查看内存空间的大小
-m 一兆为字节查看空间的大小(默认为字节)
添加swap分区:
1、运用fdisk 添加swap格式文件系统
2、确认文件系统为swap后,创建交换分区
3、创建交换分区运用mkswap命令而不是mkfs
mkswap /dev/sda5
-L 指定卷标
4、free -m 发现内存大小没有改变,是因为新建的swap分区还未挂载
5、挂载swap分区也比较独特不是用mount而是用是用swapon
swapon /dev/sda5
6、free -m 发现内存大小已经改变了
7、卸载分区用命令swapoff
注意swap分区创建文件系统命令为mkswap,挂载命令为swapon,写在命令为swapoff.
回环设备
loopback,使用软件来模拟硬件(如果我们是在没有空间可用又急着创建新的交换分区,可以创建一个本地回环设备,设置格式为swap格式,充当swap分区)
dd:
if=数据源
of=数据储存目标
bs=# 输出size为#字节(一块的大小)
seek=# 创建数据时跳过的空间大小
count=# 一次输出多少块
cp 命令通过虚拟文件系统(VFS)把文件读取到内存,再粘贴到指定位置;dd命令直接把文件的对应的二进制代码复制到指定位置,不通过VFS,dd命令能过之复制文件的一部分内容
dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1
复制磁盘的MBR(512byte)
dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1
还原MBR
cat /dev/cdmor > /root/rhe15.iso
运用cat创建光盘镜像
dd if=/dev/zero of=/var/swapfile bs=1M count=1024
运用dd创建一个大小为1G的虚拟镜像文件
/dev/zero 创建一大堆零
/dev/null 吞噬一切数据
创建临时救急的swap分区
dd if=/dev/zero of=/var/swap bs=1M count=1024
创建大小为1G的虚拟镜像
mkswap /var/swap
建立swap格式的文件系统
swapon /var/swap
挂载
free -m 发现swap增大一G(临时救急,性能差)
mount命令也可以挂载iso镜像
mount DEVICE /MOUNT_POINT
-o loop 挂载本地回环设备
swapon -a /etc/fstab 启用定义在/etc/fstab 所有的交换设备
/etc/fstab: 文件系统配置文件
操作系统在初始化时,会自动挂载在此目录中定义的每个文件系统
cat /etc/fstab
要挂载的设备:卷标=“ ”,UUID= “ ”,设备名
挂载点:注意交换分区的挂载点只能是swap
文件系统类型:
挂载选项:默认为default,也可以手动配置default(man mount有关于default的信息)
转储频率:1表示每天备份一次,0表示不备份
文件系统检测次序:根必须为一,表示第一个先被检测,其他可以并列第二,0表示不检测。
mount -a 表示挂载/etc/fstab上的所有的设备
mount挂载的设备在重启后都变成非挂载
fuser:验证进程正在使用的文件或套接字文件
-v 查看某文件上正在运行的进程
-k 终止正在运行的进程
-m
fuser -km mount_point 终止正在访问此挂载点的所有进程
标签:磁盘管理
原文地址:http://10063380.blog.51cto.com/10053380/1681509