Linux一般使用fdisk来分区,fdisk基本支持所有的操作系统。fdisk是基于MBR的分区工具,如果使用GPT分区的话是不能使用fdisk的。
fdisk -l 可以列出所有安装的磁盘及其分区信息
cat /proc/partitions 可以查看分区信息,proc保存系统的实时信息
fdisk /dev/sda 对磁盘进行分区
使用上面的命令之后会进入fdisk的交互式界面,按照它的提示进行分区。但是要注意MBR分区方式对主分区的个数是有限制的,如果你需要创建很多分区的话你就去创建扩展分区。扩展分区是不能使用,你需要再在扩展分区的基础上创建逻辑分区。这是为了解决主分区数量不足。
在你分区完成之后一定记得使用W命令来把你去磁盘的操作写进硬盘,否则是没有用的。
partprobe命令可以让内核更新分区信息在,在你的分区信息没有显示出来的时候可以运行该命令。
文件系统
新创建的磁盘分区是不能使用的,必须在上面挂载文件系统(格式化)。没有文件系统的设被称为裸(raw)设备,裸设备在oracle上使用比较多。
常见的文件系统有fat32、NTFS、ext2、ext3、ext4、xfs、HFS等。文件系统的区别在日志、支持的分区的大小、支持的单个文件大小、性能等。
创建文件系统
mke2fs -t 系统类型 要创建的分区 创建文件系统
-b 指定文件系统块大小
-c 建立文件系统时检查块损失
-L 指定卷标
-j 建立文件系统日志(journal)
mkfs.ext4 /dev/sda1 一样可以创建文件系统,速度比mke2fs块,但是不能进行精细化控制
fsck /dev/sda1 检查并修复损坏的文件系统(检查时必须先卸载)
-y 不提示直接修复
-t 文件系统损害过于严重
对于识别为文件的损坏数据(文件系统无记录),fsck会将该文件放入lost+found目录,每个格式的磁盘都有这个目录。
dumpe2fs /dev/sda1 查看分区的文件系统信息
e2label /dev/sda1 显示sda1的系统标签
e2label /dev/sda1 NAME 设置sda1的系统标签为NAME(约定成大写)
挂载文件系统
Linux需要手动挂载系统或者配置系统进行自动挂载
mount /dev/sda1(要挂载的分区) /mnt(挂载点)
不带参数的mount命令会显示所有已挂载的文件系统
-t 指定文件系统的类型
-o 指定挂载选项
ro,rw 以只读或读写形式挂载,默认是rw
sync 代表不使用缓存,而是对所有操作直接写入硬盘
async 代表使用缓存,默认async
noatime 代表每次访问文件时不更新文件的访问时间
atime 代表每次访问文件时更新文件的访问时间
remount 重新挂载文件系统
多个参数使用逗号分割。
卸载文件系统
unmount /dev/sda1(文件系统)或者/mnt(挂载点)
fuser -m /dev/sda1 查看使用文件系统的进程
lsof /mnt/(挂载点) 查看正在被使用的文件
自动挂载
通过配置/etc/fstab可以自动挂载文件系统。fstab中每一行代表一个挂载配置:
/dev/sda1 /mnt /ext4 defaults 0 0
需要挂载的设备 挂载点 文件系统 挂载选项 dump、fsck相关选项
需要挂载的设备也可以使用LABEL进行识别,使用LABEL=NAME取代/dev/sda1
mount -a 挂载所有定义在fstab的自动挂载选项