磁盘管理 2020/1/9
Linux磁盘管理
I/O ports:I/O端口,I/O设备地址
一切皆文件
块设备:Block,存取单位“块”,如:磁盘
字符设备:char,存取单位“字符”,如:键盘
设备文件:关联至一个设备的驱动程序,进而能够和与之对应的硬件设备进行通信,
设备号码:
主设备号:major number,标识设备类型
次设备号:minor number,标识同一类型下的不同设备
硬盘的接口类型
并行: 串行:
IDE:133MB/s SATA3.0:6Gbps
SCSI:640MB/s SAS:6Gbps
USB3.0:480MB/s
以上速率表示为接口速率,非硬盘数据传输速率
rpm:rotations per minute:每分钟转过的圈数
/dev/DEV_FILE
磁盘设备的设备文件命名:
(早前)
IDE:/dev/hd
SCSI,SATA,SAS,USB:/dev/sd
(现在)6以后,统称/dev/sd
不同设备:a-z
/dev/sda, /dev/sdb, /dev/sdc......
不同分区:1,2,3.。。。。。
/dev/sda1,/dev/sda2,/dev/sda3.。。。。。
机械硬盘的基本工作机制:
分区:按柱面
0磁道0扇区:512bytes
MBR:master boot record 主引导记录
446bytes:boot loader 引导加载器
64bytes:分区表
64个字节中,每16个字节标识一个分区
所以有4个主分区,或者3主分区+1个扩展分区(指向N个逻辑分区)
2bytes:5A表示前510个字节是有效的
主分区和逻辑分区可以1-4随意编号,但是逻辑分区必须从5开始编号
当一块盘大于2T时,不适用MBR
UEFI,GPT?
分区管理工具:fdisk,sfdisk,parted
fdisk : 最多只能管理15个分区
fdisk [-uc] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device
fdisk -l [-u] [device...]
fdisk -s partition...
fdisk -v
fdisk -h
查看分区:#fdisk -l #列出当前主机上的磁盘分区信息
前面一段意思是:硬盘总大小21.5G,255个磁面,63个扇区,2610个柱面,每个柱面单位是8225280 byets(8.2M),磁盘标识符是0x000a5d31.
1. * , Boot表示是否可引导,*表示可引导。表示/dev/sda1为可引导设备。+,代表多个的意思。
(硬盘分区遵循着“主分区→扩展分区→逻辑分区”的次序原则,而删除分区则与之相反。
start 起始柱面 End 结束柱面 Block 包含的磁盘块数
所以/dev/sda1,是主分区,且是活动的主分区。
2.Id:分区标识
各种分区的文件系统不同,如有ntfs分区,fat32分区,ext3分区,swap分区等。每一种文件系统都有一个代号,对应这里的Id。
f:FAT32 Extend,只限于扩展分区。
86:NTFS。
7:HPFS/NTFS
b:FAT32。
83:Linux Ext2。
82:Linux 交换区
3.System:应用在哪个系统上的常用分区
HPFS(高性能文件系统)是IBMOS/2操作系统的一种文件系统。Fdisk把HPFS和NTFS视为一类.
LBA是win95引入的,为了能使用大于8.4G的硬盘,中文名是“逻辑块存取”,EXT'd意思是“扩展分区”
W95 Ext'd (LBA)是分区的一个识别符,表示扩展分区.
管理分区:[[email protected] ~]# fdisk /dev/sda
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition #删除分区
l list known partition types #列出所有分区ID
m print this menu #获取帮助
n add a new partition #创建新分区
o create a new empty DOS partition table
p print the partition table #显示已有分区
q quit without saving changes #放弃更新并退出
s create a new empty Sun disklabel
t change a partition's system id #调整分区ID
u change display/entry units
v verify the partition table
w write table to disk and exit #将更新写入磁盘,并退出
x extra functionality (experts only)
添加分区。
w写入退出后告警
查看/proc/partitions,查看当前内核是否已经识别新的分区
通知内核重新读取硬盘分区表:
[[email protected] ~]# partx -a /dev/sda
partx - telling the kernel about presence and numbering of on-disk partitions.
-a add specified partitions or read disk and add all partitions
-d delete specified or all partitions
-l list partitions. Note that the all numbers are in 512-byte sectors.
[[email protected] ~]# kpartx -a /dev/DEVICE :同partx
-f:强制
内核一旦识别了分区,就可以格式化并创建文件系统,
创建文件系统后,就可以开始挂载并使用分区
Linux文件系统管理
Linux文件系统:ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap(交换文件系统)
swap:交换分区
光盘:iso9660
另外:
windows:fat32, ntfs
unix:FFS,UFS,JFS2
网络文件系统:NFS,CIFS
集群文件系统:GFS2,OCFS2
分布式文件系统:ceph,moosefs......
根据是否支持“journal”日志功能:
日志型文件系统:ext2,ext3,ext4,xfs......
非日志型文件系统:ext2,vfat
文件系统的组成部分:
内核中的模块:ext4,
用户空间的管理工具:mkfs.ex4
linux的虚拟文件系统:VFS(中间层)
系统支持的文件系统:[[email protected] ~]# cat /proc/filesystems
[[email protected] ~]# mkfs.ext4 /dev/sda5
将sda5分区格式化为ext4格式
[[email protected] /]# mkswap /dev/sda6
Setting up swapspace version 1, size = 96352 KiB
no label, UUID=3c16caa5-9782-4231-a07e-9f1cbaa4e383
将sda6分区格式化为swap格式
创建文件系统:mkfs.命令
mkfs.类型 /dev/分区
mkfs -t 类型 /dev/分区
-f 强制
-L ‘卷标’ :设定卷标
mke2fs:ext系列文件系统专用管理工具
设置卷标为‘LABEL’
[[email protected] ~]# blkid /dev/sda5 #查看分区sda5的文件系统
blkid:块设备属性信息查看
blkid [option]... [device]
-U:根据指定的UUID查找设备
-L:根据指定的卷标‘LABEL’来查找对应设备
e2label:管理ext系列文件系统的LABEL信息(查看及设定LABEL卷标)
查看:
更改:(不用格式化)
tune2fs:重新设定ext系列文件系统可调整参数的值
-l 查看文件系统的超级块信息
dump2fs:查看文件系统结构信息
-h:查看超级块信息
mkswap:创建交换分区
前提:调整其分区的ID为82
文件系统检测:
fsck:file system check
fsck.FS_type
FS_type一定要与分区上已经存在的的文件系统相同
-a:自动修复错误
-r:交互式修复错误
e2fsck:ext系列文件专用的检测修复工具
-y:自动回答为YES
-f:强制修复