Linux磁盘和文件系统

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的自动挂载选项


你可能感兴趣的:(Linux学习路程)