Linux 磁盘分区及文件系统管理

磁盘分区MBR

MBR(MasterBootRecord)在磁盘的0 sector,一共512字节,分为三个部分,466字节为bootloader程序,引导启动操作系统的程序、64字节为分区表,每16字节标识一个分区,一共只能有四个分区(同时可以是3个主分区和N个逻辑分区)、最后2字节用于表示MBR区域的有效性(55AA表示有效)

主分区标识:1-4

逻辑分区标识:5+

fdisk命令

fdisk提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能,所有的操作均在内存中完成,没有直接同步到磁盘,直到使用w命令保存到磁盘上

fdisk -l: 查看所有磁盘分区情况

fdisk -l /dev/sda: 查看指定磁盘分区情况

fdisk /dev/sda: 用于管理磁盘

cat /proc/partitions: 查看内核识别到的所有分区

文件系统管理工具

创建文件系统工具

mkfs: mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.vfat,…

mkfs -t ext2等价于mkfs.ext2

  • ext系列文件系统的管理工具

mke2fs [OPTIONS] device

-t {ext2|ext3|ext4}: 指明要创建的文件系统类型,mkfs.ext4等价于mkfs -t ext4,还等价于mke2fs -t ext4

-b {1024|2048|4096}: 指定文件系统块大小

-L LABEL: 指明卷标

-j: 创建有日志的文件系统ext3,于是有mkfs.ext3等价于mkfs -t ext3,等价于mke2fs -t ext3,等价于mke2fs -j

-i #: 指明inode与字节的比率,即每多少字节创建一个inode

-N #: 直接指明要给此文件系统创建多少inode

-m #: 指定预留空间百分比

-O [^]FEATURE: 以指定的特性创建目标文件系统

  • e2label命令,用于查看和设定卷标

e2label device: 查看设备label

e2labe device LABEL: 设定label

检查及修复文件系统工具

因进程意外终止或者系统崩溃等原因导致定稿操作非正常终止时,可能会造成文件系统损坏;此时,应该检测并修复文件系统;建议离线进行;

fsck:fsck.ext2,fsck.ext3,fsck.ext4,fsck.xfs

-t fstype: 指明文件系统类型,fsck -t ext4等价于fsck.ext4

-a: 无需交互而自动修复所有错误

-r: 交互式修复

e2fsck为ext系列文件系统的专有工具

e2fsck [OPTIONS] device

-y: 对所有问题自动恢复yes

-f: 即使文件系统处于clean状态,也要强制进行检测

查看属性的工具

dumpe2fs, tune2fs

dumpe2fs [-h] device: 显示ext系列文件系统的属性信息

tune2fs命令用于查看或者修改ext系列文件系统的某些属性

-i: 查看超级块的内容

bklid device

blkid -L LABEL: 根据LABEL定位设备

blkid -U UUID: 根据UUID定位设备

调整文件系统特性

tune2fs命令用于查看或者修改ext系列文件系统的某些属性

-j: ext2改为ext3

-L LABEL: 修改卷标

-m #: 调整预留空间百分比

-O [^]FEATURE: 开启或者关闭某种特性

-o [^]mount_options: 开启或者关闭某种默认挂载项

swap文件系统

Linux上的交换分区必须使用独立的文件系统,并且文件系统的SystemID必须为82

创建swap设备: mkswap命令mkswap [OPTION] device

-L LABEL: 指明卷标

-f: 强制创建

文件系统的使用

首先需要被挂载:使用命令mount和umount

根文件系统之外的其他文件系统要想被访问,必须通过关联至根文件系统上的某一个目录来实现,此关联操作就是挂载,此目录为挂载点。挂载点必须事先存在,当挂载上另外的文件系统时,里面的内容将被隐藏。

挂载与选项

  • mount命令

-r: readonly,只读挂载

-w: 读写挂载

-n: 默认情况下,设备挂载或者卸载操作会同步更新到/etc/mtab文件中,-n用于禁止此特性

-t vfstype: 指明要挂载的设备上的文件系统类型,多少情况可以省略,此时mount会通过blkid来判断要挂载的设备的文件系统类型

-L LABEL: 通过卷标指定挂载设备

-U UUID: 通过UUID指定要挂载的设备

-o options: 挂载选项

sync/async: 同步/异步操作
atime/noatime: 文件或者目录被访问时是否更新其访问时间戳
diratime/nodiratime: 目录在被访问时是否更新其访问时间戳
remount: 从小挂载
acl: 支持使用facl功能,例如mount -0 acl device dir rune2fs -o acl device
ro: 只读
rw: 读写
dev/nodev: 此设备上是否运行创建设备文件
exec/noexec: 是否允许允许此设备上的程序文件
user/nouser: 是否允许普通用户挂载此文件系统
suid/nosuid: 是否允许程序文件上的suid和sgid特殊权限生效
defaults: rw,suid,dev,exec,auto,nouser,async,and relatime

可以实现将一个目录绑定到另一个目录: mount --bind 源目录 目标目录

挂载光盘: mount -r /dev/cdrom mount_point,光盘设备文件为/dev/cdrom/dev/dvd

挂载优盘: 需要事先识别U盘设备,然后挂载,和挂载普通文件系统一样

查看挂载情况

mount或者cat /etc/mtab或者cat /proc/mounts

卸载

umount device|dir: 卸载设备

lsof MOUNT_POINTfuser -v MOUNT_POINT: 查看哪个进程在占用设备

fuser -km MOUNT_POINT: 终止所有访问某挂载点的进程

swap系统的使用

启用:swapon [option] [device]

-a 定义在/etc/fstab文件中的所有swap设备

禁用:swapoff DEVICE

fstab

Linux系统启动时会读取/etc/fstab文件,将其中的定义的每一个设备进行挂载,有6个字段的定义,依次是:

  1. 要挂载的设备,可以用设备文件、LABEL、UUID、伪文件系统(sysfs、proc、tmpfs等)

  2. 挂载点,如果是swap类型的设备挂载点就是swap

  3. 文件系统类型

  4. 挂载选项,如果有多个选项使用逗号分隔,例如defaults,acl,noatime,noexec

  5. 转存频率,0表示从不转存,1表示每天备份,2表示隔一天备份

  6. 自检次序,0表示不自检,1表示首次自检,通常只能是根文件系统可用1,2,3,4,5,…表示次之

df和du命令

df命令

df [options]

-l: 仅显示本地文件系统的相关信息

-h: 显示human-readable

-i: 显示inode的使用状态而非blocks

du命令

du [options] FILE

-s: 只显示总和情况

-h: human-readable

你可能感兴趣的:(Linux,linux)