1.硬盘命名规则,uuid和fdisk命令
1.1硬盘命名规则
linux中一切都可以用文件来表示,包括块设备,/dev下就是linux存放与设备相关联的文件,直接改动下文件就可以实现对块设备的管理
硬盘的命名规则是有约定的如果使用的是IDE硬盘,那么在linux下的/dev/设备文件分配的hd[a-z]这样的文件名,如果是SCSI、SATA、USB、SAS这中类型的块设备,则分配sd[a-z]的文件名,完整的文件名/dev/sd[a-z]
1.2什么是uuid,能用来做什么
UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,uuid在此处可作为硬盘的唯一识别码,可以使用uuid对硬盘直接实施管理,命令是blkid,且blkid不仅限于能查看UUID,还能查看硬盘的分区格式
1.3fdisk命令以及能实现的管理
在为系统添加几块SCSI硬盘后,我们需要通过,分区(可省),然后初始化文件系统方式后,才能使用该硬盘存放数据,而linux中对硬盘实现分区管理则是fdisk命令,fdisk命令是交互式命令,使用方式:fdisk /dev/sd* *指定需要管理的块设备名,例如: fdisk /dev/sdb 进入交互界面后,会有如下参数:
m: 查看选项参数与参数对应的功能
n: 新建分区
d: 删除分区
t:改变分区文件系统,并分配相应的centos文件系统标识特征码
p:列出当前分区
w:保存并退出
q:不保存退出
值得一提的有两点
1.fdisk下的操作会清除操作设备的数据,如果不使用w保存并退出的话,改动是不会生效,也不会影响到数据,但是使用了w,就会清除数据,并应用刚才的操作设置
2. 分区方式有主分区(primary)和扩展分区(extend),由于硬盘的分区信息存储的大小为64bytes,每个分区存储信息占用16bytes,所以,最多只能有4个主分区,如果四个都是主分区后,就不能再增加分区,为了解决这个问题,在硬盘分区数量大于5个的时候,就会将最后一块主分区拿出一部分区域用来存放扩展分区的分区地址信息。
如下图所示,本地有三块额外添加的磁盘,使用命令创建一个sdb1,和sdb2分区
1.4更新内核分区表,partprobe ,partx,kpartx
在上面分区后,使用w命令将改动生效,这个时候再使用fdisk -l | grep /dev/sd,就能看见看见 /dev/sdb1了
虽然能看见但是不代表就一定能用,还需要将内核的分区信息更新,CentOS5:partprobe,CentOS6:partx,CentOS7:kpartx.
2.文件系统
2.1ext系列文件系统格式和xfs文件系统格式
第一节做完硬盘的分区后,还需要对硬盘分区进行格式化,将硬盘的存储格式转换成固定的文件系统格式,这样才能使用(和windows类似),CentOS专用的系统格式有许多,ext系列的ext2、ext3、ext4、xfs,CentOS6和之前的系统并不支持xfs格式,需要额外安装支持,CentOS7则都可以使用
2.1mkfs实现对硬盘的格式化
mkfs.ext2、mkfs.ext3、mkfs.ext4、mkfs.xfs、分别将硬盘格式化成对应的ext2、ext3、ext4、xfs系统
示例:mkfs.ext4 /dev/sdb1
2.2对ext系列分区实现管理的tune2fs,dumpe2fs,e2label
tune2fs -l /dev/sdb1 查看该分区的详细信息,包括inode、文件格式、特性、block等等
tune2fs -L mydata /dev/sdb1 指定/dev/sdb1的卷标名为mydata,该卷标名能起到和UUID或设备名一样的作用,可用于挂载,查看卷标名tune2fs -l /dev/sdb1或blkid /dev/sdb1或e2label /dev/sdb1
同样的dumpe2fs的作用和tune2fs类似,但是和tune2fs具有修改的功能不同,dumpe2fs只有查看功能,且输出信息更为详细
e2label类似与tune2fs -L mydata /dev/sdb1,例如:e2label /dev/sdb1 mydisk 这样就能将sdb1的label名改为mydisk
2.3 检测及修复文件系统的工具e2fsck,fsck
因进程意外中止或系统奔溃等原因导致定稿操作非正常中止时,可能会造成文件损坏,此时,应检测并修复文件系统;建议,离线进行检测
实例:
e2fsck -f /dev/sdb1即使文件系统处于clean状态,也要强行进行加测
fsck:
fsck -t ext4 /dev/sdb1指明文件类型并检测
fsck -t ext4 -a /dev/sdb1 无需交互自动修复所有错误(不建议)
fsck -t ext4 -r /dev/sdb1 交互式修复
3.使用硬盘
3.1 挂载与卸载操作
mount命令,挂载设备文件至挂载目录,可实现对设备文件的读写,示例:
mount -a :挂载所有在fstab中定义的设备
mount -r / -w /dev/sdb1 /mnt:只读,正常挂载至/mnt
mount -L mydata /mnt:指定label名为mydata的卷至/mnt
mount -o :许多特殊特性
mount -o atiem/noatime /dev/sdb1 /mnt:记不记载atime
umount命令,卸载:
umount /dev/sdb1
umount /mnt
卸载时卸载设备文件或挂载目录都是可以的
3.2 内核对硬盘的识别
/etc/mtab,/proc/mounts会记载挂载设备的信息,显示内容和mount -l命令一致
/proc/partitions的内容记载的内核识别到的设备信息,其中major主设备号,minor次设备号
/etc/fstab 自动挂载文件
3.3挂载文件的使用查看lsof,fuser,df,du
如果卸载的时候,发现提示正在读写无法卸载,lsof /dev/sdb1或lsof /mnt就能查看到是什么进程在占用此设备
fuser不仅能查看进程,还能对该占用设备的进程进行中止
fuser -v /mnt 后面必须结挂载点查看占用信息
fuser -km /mnt 对/mnt的所有占用中止(可能会导致文件损坏不建议)
df -lh查看所有挂载设备和挂载点以及容量信息
du -h 查看目录和该目录以下所有文件的大小之和
lsblk 硬盘分区关系罗列