磁盘管理(一)
本章节内容:
磁盘结构
分区类型
管理分区
管理文件系统
挂载设备
一、磁盘结构:
1、设备号码:
主设备号:major number, 标识设备类型
次设备号:minor number, 标识同一类型下的不同设备
2、磁盘接口类型:
并行:IDE、SISC
串口:SATA 、SAS 、USB
rpm:rotatons、per minute
3、磁盘设备的设备文件命名:
IDE:/dev/hd
SISC:/dev/sda、/dev/sdb、…… (不同的设备,使用a-z)
(同一设备上,不同的分区,采用数字来命名区分,如:/dev/sda1、/dev/sda2……)
4、 磁盘结构及磁盘存储:
如下图,结构:磁臂、电机、扇区(secotr)\磁道(track)、磁头(head)、盘片、柱面(cylinder)
(注:每个磁道有63个扇区,每个盘面有1024个磁道,每个磁盘最多有255个磁头,每个扇区最多能存储512个字节。柱面:每个盘面都有零磁道/扇区,每个盘片有两面,因此每个盘片有两个零磁道/扇区,每个磁盘有多个盘片,所以,磁盘的所有零磁道/扇区组成的立体为零柱面,其他柱面也是如此!)
二、分区类型:
1、首先了解为什么要分区?
A、 优化I/O性能
B、实现磁盘空间配额限制
C、提高修复速度
D、隔离系统和程序
E、安装多个OS
2、磁盘的两种分区方式:
MBR 、GPT
(1)MBR分区:采用32位表示扇区数,分区不超过2T。
0磁道0扇区:512bytes(446bytes为boot loader;64bytes为分区表(16bytes标示一个分区);2bytes为55aa)
支持最多4个主分区(3个主分区+1扩展分区[N个逻辑分区])
(2)GPT分区:最大支持128个主分区,使用64位,支持8Z(512bytes/block)和64Z(4096bytes/block)。
使用128位UUID 表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位。
UEFI (统一扩展固件接口)硬件支持GPT。
3、查看硬盘分区信息:
A、命令lsblk
B、cat /proc/mounts
C、ls /dev/sd*
4、检查磁盘是否分区:
5、备份磁盘和还原分区表:
备份:dd if=/dev/sda of=/root/mbr bs=1 count=512
还原:dd if=mbr of=/dev/sda
如下图,查看备份出来的mbr分区表信息(注:或者在备份前也可以使用命令查看,#hexdump -C -n 512 /dev/sda)
6、清除分区表信息(写零):
命令:dd if=/dev/zero of=/dev/sdc bs=1 count=64 skip=446 seek=446(跳过446字节)
7、清除boot loader信息(写零):
命令:dd if=/dev/zero of=/dev/sdc bs=1 count=446
注:上面所提到的清除步骤,勿在系统安装的磁盘上操作。
三:管理分区:
1、如何列出系统中的磁盘分区:(命令#lsblk)
命令:blkid查看分区的UUID、系统类型等信息
2、分区创建:
fdisk |
gdisk |
主要创建MBR分区,也支持GPT,但对于一块磁盘最多只能管理15个分区 |
主要创建GPT分区,也可以将MBR分区转换成GPT |
# fdisk /dev/sda(功能选项)
|
# gdisk /dev/sda (功能选项)
|
注:parted高级分区操作(创建、复制、调整大小等等)
3、同步分区表命令:
CentOS5 |
CentOS6 |
CentOS7 |
|
新建分区同步 |
#partprobe /dev/DEVICE |
partx -a -n M:N /dev/DEVICE kpartx -a /dev/DEVICE -f: force |
#partprobe /dev/DEVICE |
删除分区同步 |
#partprobe /dev/DEVICE |
partx -d -n M:N /dev/DEVICE 删除一个分区 partx -d –nrN-M /dev/DEVICE 删除多个分区 |
#partprobe /dev/DEVICE |
4、parted命令创建GPT分区:
#parted /dev/sdb mklabel gpt(parted /dev/sdb mklabel msdos[MBR])
# parted /dev/sdb mkpart primary 1 1024 (从1开始到1024分1G)
删除分区:#parted /dev/sdb rm 1 (1为分区的编号)
注:parted的操作都是实时生效的,小心使用
四、管理文件系统:
1、什么是文件系统:
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等。
2、文件系统类型:
Linux文件系统: ext2, ext3, ext4, xfs(SGI), btrfs(Oracle), reiserfs, jfs(AIX), swap(交换分区)、光盘(iso9660)
Windows:fat32, ntfs
Unix: FFS(fast), UFS(unix), JFS2
网络文件系统:NFS, CIFS
集群文件系统:GFS2, OCFS2(oracle)
分布式文件系统:ceph, moosefs, mogilefs, glusterfs, Lustre
RAW:未经处理或者未经格式化产生的文件系统
3、文件系统类型分类:
根据其是否支持"journal"功能:
日志型文件系统: ext3, ext4, xfs, …
非日志型文件系统: ext2, vfat
文件系统的组成部分:
内核中的模块:ext4, xfs, vfat
用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux的虚拟文件系统:VFS
查前支持的文件系统:cat /proc/filesystems
4、创建文件系统:
(1)、mkfs命令:
使用格式有:mkfs.ext2 、mkfs.ext3、 mkfs.ext4、 mkfs.xfs 、mkfs.btrfs 、mkfs.vfat
如下图:
使用选项:
-t FSTYPE[DEVICE]:ext2 ext3 ext4
即:mkfs.ext2=mkfs -t ext2
-L :设置分区卷标
#mkfs.ext4 /dev/sda2 -L ‘卷标名称’
(2)、mke2fs命令:管理格式化ext系列的文件系统。
#mke2fs -t {ext2|ext3|ext4} /dev/sda3
或 -j: 相当于-t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
5、ext系列文件系统的管理工具:
(1)、mke2fs命令:ext系列文件系统专用管理工具
-b {1024|2048|4096}
-L 'LABEL'
-i #: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小
-N #:为数据空间创建个多少个inode
-I 一个inode记录大小128—4096
-m #: 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,…]:启用指定特性
-O ^FEATURE:关闭指定特性
例题:选项-O的使用,如下图关闭指定特性日志功能:
(2)blkid系统分区信息查询:
A、blkid:块设备属性信息查看
blkid[OPTION]… [DEVICE]
-U UUID: 根据指定的UUID来查找对应的设备
-L LABEL:根据指定的LABEL来查找对应的设备
B、e2label:管理ext系列文件系统的LABEL
# e2label DEVICE [LABEL]
C、findfs:查找分区
findfs[options] LABEL=<label>
findfs[options] UUID=<uuid>
(3)tune2fs:重新设定ext系列文件系统可调整参数的值
-l:查看指定文件系统超级块信息;super block
-L 'LABEL':修改卷标
-m #:修预留给管理员的空间百分比
-j: 将ext2升级为ext3
-O: 文件系统属性启用或禁用,-O ^has_journal
-o: 调整文件系统的默认挂载选项,-o ^acl
例题:启用分区的日志功能,如下图:
-U UUID: 修改UUID号(此处可以通过命令产生随机UUID:#uuidgen)
(4)dumpe2fs:
查看superblock:dumpe2fs /dev/sda3
-h:查看超级块信息(分组信息),分区用分组管理
6、文件系统的检测与修复:
常发生于死机或者非正常关机之后;挂载为文件系统标记为“dirty”
fsck: File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
-a: 自动修复错误
-r: 交互式修复错误
注意: FS_TYPE一定要与分区上已经文件类型相同;
e2fsck:ext系列文件专用的检测修复工具
-y:自动回答为yes
-f:强制修复
五:管理挂载设备:
1、什么是挂载和卸载:
挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为。
卸载:为解除此关联关系的过程
2、挂载条件与特殊:
挂载点目录一般为空
挂载点下原有文件在挂载完成后会被临时隐藏
3、挂载和卸载命令:
进程正在使用的设备是无法被卸载的。
把设备关联挂载点:mount /PATH/TO/dir
卸载时:umount /PATH/TO/dir
4、挂载方法:
A、mount /dev/sda3 /mnt/sda3
B、mount -L ‘backup’(卷标名) /mnt/sda3
C、mount -U ‘UUID号’ /mnt/sda3
5、挂载后的操作:
A、查看挂载情况:findmnt /mnt/sda3
B、查看正在访问指定文件系统的进程:losf /mnt/sda3或fuser /mnt/sda3
C、终止所有正在访问指定的文件系统的进程:fuser –km /mnt/sda3
6、mount命令:(注:mount挂载使用所相应的选项达到的效果都不是永久的,机器一旦重启将丢失。)
A、使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir
B、常用选项:
-t vsftype:指定要挂载的设备上的文件系统类型
-r: readonly,只读挂载
-w: read and write, 读写挂载
-n: 不更新/etc/mtab,相当于#mount
-a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
-L 'LABEL': 以卷标指定挂载设备
-U 'UUID': 以UUID指定要挂载的设备
-B, –bind: 绑定目录到另一个目录上
查看内核追踪到的已挂载的所有设备:cat /proc/mounts
C、-o的常用选项:
-o options:(挂载文件系统的选项),多个选项使用逗号分隔
async:异步模式
sync:同步模式,内存更改时,同时写磁盘
atime/noatime:包含目录和文件
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载,是否支持-a选项
exec/noexec:是否支持将文件系统上运行应用程序
dev/nodev:是否支持在此文件系统上使用设备文件(dev:mkdir /mnt/sda3/cdrom ;mknod cdrom b 11 0;mount /dev/sda3/cdrom /media/)
suid/nosuid:不否支持suid和sgid权限
remount:重新挂载
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备,默认管理员才能挂载
acl:启用此文件系统上的acl功能(在CentOS6上系统安装完成后新分出来的分区是不启用acl的,此处虽然可以挂载时生效启用acl,但不是永久有效的,建议还是用tune2fs -o acl /dev/sda3 )
Defaults:相当于rw, suid, dev, exec, auto, nouser, async
演示:分区,格式,挂载
分区:
格式化:
分区挂载:
原创文章,作者:Aaron_wang,如若转载,请注明出处:http://www.178linux.com/40200