磁盘的分区、格式化与挂载
Linux系统添加磁盘的主要流程
- 对磁盘进行分区,以建立可用的分区 ;
- 对该分区进行格式化 (format),建立文件系统;
- 建立目录作为挂载点,并将磁盘分区挂载到挂载点上
文件系统
文件系统是存储设备上组织文件的方法;文件和目录被组织成一个单根倒置树结构。一个可被挂载的数据可为一个文件系统。
由于每种操作系统所设定的文件权限/属性并不相同,因此为了存放这些文件所需的数据,就需要将分区进行格式化,以成为操作系统能够使用的文件系统。
windows文件系统类型:FAT、NTFS;
Linux正则文件系统:EXT,XFS
查看linux系统支持的文件系统以及挂载文件系统类型的优先级:
磁盘信息查看
查看磁盘的分区表、分区信息、文件系统信息等
fdisk -l /dev/sda #查看硬盘分区详细信息;查看系统所识别到的硬盘
lsblk /dev/sda #查看系统上所有硬盘信息
lsblk -ft /dev/sda #查看硬盘信息,包含文件系统和UUID等详细数据
blkid /dev/sda1 #查看分区信息,包含UUID全局唯一标识符,可用于挂载硬盘
parted /dev/sda print #查看分区表信息
磁盘分区
分区是针对整个磁盘进行分区操作,不是针对某个分区进行分区的
磁盘分区前的信息确认,确定分区表类型,选择合适的工具进行分区
MBR分区表,建议使用fdisk工具进行分区
GPT分区表,建议使用gdisk工具进行分区
parted分区工具,适用于MBR分区表与GRP分区表
fdisk /dev/sda #MBR分区 m帮助命令 d 删除分区 n 添加分区 p 查看分区 q 退出 w 保存退出 t分区类型 l分区类型列表
gdisk /dev/sda #gpt分区 ?帮助命令 d 删除分区; n 添加分区; p 查看分区; q 退出; w 保存退出
cat /proc/partitions #查看分区表信息,Linux核心更新前后的变化
partprobe #更新 Linux 核心的分区表信息
partprobe -s #更新时屏幕提示分区信息
fdisk工具与gdisk工具的使用
gdisk工具系统未安装,需要手动安装该工具
fdisk工具与gdisk工具使用方法类似
查看分区类型
使用fdisk/gdisk工具对磁盘进行分区
分区信息的确认以及内核更新分区信息
使用分区工具对磁盘进行分区后,由于核心还没有更新,因此没有不会看到新增的分区信息
分区删除操作
不要去删除一个正在使用的分区,若要删除,应该先将其卸除,否则直接删除分区的话,虽然磁盘还是会写入正确的分区信息,但是核心会无法更新分区表信息
parted工具的使用
parted /dev/sda mklabel gpt #修改硬盘分区表
parted /dev/sda mkpart xfs 20GB 25GB #建立xfs文件系统分区
parted /dev/sda mkpart primary xfs 20GB 25GB #建立主分区
parted /dev/sda mkpart extended ext4 20GB 25GB #建立扩展分区
parted /dev/sda mkpart logical ext4 20GB 25GB #建立逻辑分区
parted /dev/sda rm number #移除分区
磁盘分区格式化
mkfs -t type /dev/sda1 #type可以是ext4/xfs等文件系统类型
mkfs.ext4 /dev/sda1 #在分区/dev/sda1中建立ext4文件系统
mkfs.xfs /dev/sda1 #建立xfs文件系统
mkfs.xfs -f /dev/sda1 #强制建立文件系统
mkfs.xfs -f -d agcount=2,su=256k,sw=7 -r extsize=1792k /dev/vda4 #制作RAID5,stripe 指定为 256K,即su=256K ;磁盘阵列有 8 颗,因此sw=8-1=7;extsize=256K*7=1792K
mkfs.xfs -f -d agcount=2,sunit=512,swidth=3584 -r extsize=1792k /dev/vda4
格式化成EXT4文件系统
格式化成XFS文件系统
查看格式化后磁盘的UUID
文件系统挂载
单一文件系统不应该被重复挂载在不同的挂载点中;
单一目录不应该重复挂载多个文件系统;
要作为挂载点的目录,理论上应该都是空目录。
若原目录中有数据,那么挂载了文件系统之后,原目录下的东西就会暂时的消失。当分区被卸除后,原目录下的东西又会恢复
mount -a #全部挂载/etc/fstab文件中设置的内容
mount UUID='UUID-number' /data/ #将UUID标识的分区挂载到/data目录下
mount -t UUID="ca17172c-9824-4b65-a8d0-9a3831033f77" /data/xfs #挂载文件系统,-t选项可省略,默认
mount /dev/sr0 /mnt #挂载CD/DVD镜像
mount /home/ #查看该目录是否挂载
mount -l #显示当前的挂载信息
mount -o remount,rw,auto / #重新挂载根目录
mount -o loop UUID='UUID-number' /mnt #挂载大文件,也可用文件的绝对路径替换UUID
mount -o loop /tmp/test.iso /data/iso #直接挂载镜像文件
mount -n -o remount,rw / #无法正常开机,救援模式的挂载,-n表示不写入/etc/mtab
mount -o codepage=950,iocharset=utf8 UUID="35BC-6D6B" /data/usb #挂载中文编码的随身碟,vfat格式,NTFS不支持
mount -o codepage=950,iocharset=big5 UUID="35BC-6D6B" /data/usb #挂载中文编码的随身碟,NTFS需要下载驱动
umount /dev/sda1 #取消挂载
umount -f /dev/sda1 #强制卸载
umount -l /dev/sda1 #立即卸载
umount -n /dev/sda1 #不更新/etc/mtab情况下卸载
文件系统检查与修复
当文件系统出现故障后,可对文件系统的检查
被检测的分区不能被挂载
fsck.ext4 -f /dev/sda1 #强制检测文件系统
fsck.ext4 -p 8193 /dev/sda1 #检测文件系统,自动恢复y
fsck.ext4 -D /dev/sda1 #优化目录配置
fsck.ext4 -b 8193 /dev/sda1 #针对superblock的位置进行文件系统检测,superblock位置:1K block放在8193,2K block放在16384,4K block放在32768;block编号从0开始
xfs_repair /dev/sda1 #检测文件系统
xfs_repair -f filename #检测文件的文件系统
xfs_repair -n /dev/sda1 #只检测文件系统,不修复
xfs_repair -d / #在单人维护模式下,针对根目录进行检测与修复
fsck.ext4 与 xfs_repair 可以检查/修复文件系统
XFS文件系统检查
EXT4文件系统检查
文件系统管理
查看、修改文件系统相关信息,比如:UUID、文件系统标签
xfs_admin -lu /dev/sda1 #查看装置的lable name和UUID
xfs_admin -L lable -U uuid /dev/sda1 #修改/dev/sda1的lable name和UUID
uuidgen #生成新的UUID
tune2fs [-l] [-L Label] [-U uuid] 装置文件名 修改ext文件系统的UUID和lable;-l表示列出superblock信息
tune2fs -l #查看superblock的信息
tune2fs -L lable -U uuid /dev/sda3 #修改/dev/sda1文件系统的lable和uuid
dumpe2fs -b /dev/sda #查看ext文件系统中损坏的部分
dumpe2fs -h /dev/sda #查看ext文件系统中的superblock部分
dumpe2fs -h /dev/vda5 | grep 'Blocks per group' #查看superblock的位置
xfs_info /home #查看/home的文件系统信息
xfs_info /dev/sda1 #查看设备的文件系统信息
XFS文件系统管理
EXT4文件系统管理
设置开机自动挂载分区
修改/etc/fstab配置文件
配置文件内容解析:
dump参数:备份
fsck参数:检验文件系统是否完整,该方式使用的是通过fsck去实现的,xfs文件系统没办法适用,因为xfs会自己去检验,不需要额外的动作
mount -a 读取/etc/fstab的内容进行磁盘挂载,可用于判断/etc/fstab文件是否配置错误