参考文档
几个概念:
- 什么是分区:对磁盘进行分割,建立可用的分区
- 什么是格式化:对分区格式化,以建立可用的文件系统
- 什么是挂载:在linux系统上建立挂载点,再将建立好的文件系统挂载上来。说白了就是将额外的分区与根文件系统上的某目录建立关联的过程,把该目录当作该分区的入口的意思,而这个目录就称为挂载点(根文件系统上的某目录)。
磁盘结构简介:
- 列举几种概念,不做深入介绍
- 扇区(sector)
- 磁道(track)
- 柱面(cylinder)
- MBR(master boot record):即主引导记录,512bytes,这个扇区又包括 boot loader、分区表和MBR有效性标记 3部分:
- boot loader:代码区,主引导程序(如grub),446bytes
- 分区表:记录整个磁盘分区的状态,64bytes,每16个字节标记一个分区,因此最多可记录4个分区,分区的单位是柱面,每个记录区记录了该分区从开始到结束的柱面号,分为:主分区(primary)或扩展分区(extend),扩展分区只能有一个,在扩展分区中再划分若干个逻辑分区
- MBR有效性标记:2bytes
- GPT分区表:支持最大18EB磁盘且分区数没有限制,只受操作系统限制。它和UEFI相相辅助相成,UEFI将逐渐取代BIOS,而GPT也将逐渐取代MBR
Linux设备文件:
- linux中一切皆文件,硬件设备也会被当作文件来对待
- 设备文件是一种特殊文件,只有inode而没有数据,它们关联至一个驱动程序,进而跟对应的硬件设备打交道。
- 设备文件一般在/dev目录下
- 在linux中,设备有“设备号”的概念,几种常见设备在linux系统中的命名:
- /dev/sd[a-p],a-p表示设备号,若有多个设备,按照读取顺序依次命名,如/dev/sda,/dev/sdb,设备名后加上数字表示该设备的分区
- 当前CD/DVD:/dev/cdrom,光盘的标准文件系统格式为iso9660
Linux文件系统(格式化):
- linux支持多种文件系统格式,有ext2,ext3,ext4,xfs,vfat等
- ext2是linux标准的文件系统格式,曾应用广泛,但没有日志,现已基本上被ext3和ext4取代
- ext4是ext3的再次升级版,现已成为主流格式
- xfs是centos 7的默认文件系统格式
- vfat能被windows和linux识别,一般用来在windows系统和linux系统之间共享数据外
Linux文件系统挂载:
- 什么是挂载:在linux系统上建立挂载点,再将建立好的文件系统挂载上来。说白了就是将额外的分区与根文件系统上的某目录建立关联的过程,把该目录当作该分区的入口的意思,而这个目录就称为挂载点(根文件系统上的某目录)。
- 挂载点:
- 根文件系统上有两个固定挂载点:/mnt,/media
- 使用mount命令挂载只是临时有效,若不想每次开机都手动挂载,可写入/etc/fstab文件
- /etc/fstab:开机自动挂载的配置文件,当系统启动时,会自动地从这个文件读取信息,并且自动地将此文件中指定的文件系统挂载到指定的目录
- /etc/fatab是开机挂载配置文件,而实际的文件系统挂载动作是记录到/etc/mtab和/proc/mounts文件中的
- /etc/fatab是开机挂载配置文件:一行一个挂载项,其格式为:
挂载的设备 挂载点 文件系统类型 挂载选项转储(dump)频率自检次序
Linux磁盘管理常用命令:
创建分区命令:MBR分区表使用fdisk命令,GPT分区表则使用gdisk命令
- fdisk -l [设备名]:查看所有磁盘或指定磁盘的分区表信息
- fdisk 设备名:在指定磁盘上创建分区,交互式界面有许多子命令,不常用
- parted:是一个同时支持MBR和GPT的分区命令,分命令行和交互式,不常用
创建文件系统(格式化)命令:
- mkfs:创建文件系统,需手动指定文件系统类型,不常用
- mke2fs:创建ext系列格式的文件系统,不常用
- mkswap [-L LABEL] DEVICE:格式化并启用swap分区
如:mkswap /dev/sda3
4. **swapon(swapoff) [-ap] DEVICE**:启用(禁用)某交换分区设备,
-a:all,启用所有交换分区
-p num:指定此交换设备的优先级
如:mkswap /dev/sda3
5. fsck:检查并修复一个或多个linux文件系统
5. e2fsck:专用于检测ext系列文件系统
5. tune2fs:调整/查看ext系列文件系统的属性
- 挂载文件系统命令:
- mount:查看所有已挂载的设备,直接使用mount命令,它实际上是读取/etc/mtab文件
- mount [options] DEVICE(要挂载的设备或分区) MOUNT_POINT(挂载点)
常用选项:
-a:挂载“/etc/fstab”中描述的所有文件系统
-r:只读挂载
-w:读写挂载
-L:以卷标方式指定设备
-U:以UUID的方式指定设备 mount UUID=’uuid’ 挂载点或mount -U uuid 挂载点
-n:挂载时,不更新/etc/mtab文件
-t FSTYPE:指定文件系统类型,通常不需指定,mount会自动选择
-o OPTION:指定加载文件系统时的选项
sync:同步I/O
async:异步I/O,数据写操作先在内存中完成,然后根据某种策略同步至持久设备中
atime/noatime:文件和目录被访问时更新时间戳
auto/noauto:设备是否支持mount的-a选项自动挂载
exec/noexec:是否允许执行此设备上的二进制程序文件
suid/nosuid:是否支持在些设备的文件上使用suid
remount:重新挂载,通常用于不卸载的情况下重新指定挂载选项
acl:在此设备上支持使用facl (默认情况下不支持)
dev/nodev:(不)可读文件系统上的字符或块设备
user/nouser:默认只有root才能挂载,该参数指定是否允许一般用户挂载该分区
defaults: 默认值为rw、suid,、dev,、exec,、auto,、nouser、async
3. **umount DEVICE或umount MOUNT_POINT**:卸载
3. **fuser -v 挂载点:**查看哪些进程正在访问挂载的设备
3. **fuser -km 挂载点:**中止正在此挂载点的进程
- 查看磁盘或文件系统信息命令:
- fdisk -l [DEVICE]和cat /proc/partitions:查看磁盘分区信息
- blkid:查看块设备的文件系统类型、label、UUID等信息,不常用
- e2label:查看或设定卷标
如:
[root@localhost ~]# e2label /dev/sda5
mydata
[root@localhost ~]# e2label /dev/sda5 mynote
[root@localhost ~]# e2label /dev/sda5
mynote
4. **df**:报告**磁盘分区**的使用情况:
用法:df [options] [DEVICE]
常用选项:
-h:以常见的格式显示分区使用信息
-i:显示inode 使用信息
-T: 显示文件系统类型
如:df -h
- du:查看文件和目录占用磁盘情况:
用法:du [option] [文件或目录]
不指定选项,则默认显示当前目录下的所有文件和子目录的磁盘使用情况
常用选项:
-s:显示总大小
-a:all,显示当前或指定目录、子目录下的所有文件和目录的磁盘使用情况
-h:在数字后附后单位,提高可读性
—max-depth: 指定目录深度
如:
[root@localhost ~]# du -sh
110M .
[root@localhost ~]# du -sh /tmp
52K /tmp
- dd命令:制作磁盘映像文件
参考文档:强大的磁盘备份工具diskcopy