【Linux词典】之磁盘命令(fdisk、gdisk、mkswap、mount、umount、df、lsblk)
【Linux词典】之磁盘命令(fdisk、gdisk、mkswap、mount、umount、df、lsblk)
【Linux词典】之磁盘命令(fdisk、gdisk、mkswap、mount、umount、df、lsblk)前言一、磁盘结构二、磁盘分区1.MBR与磁盘分区表示2.磁盘分区结构三、系统文件类型四、磁盘命令1.fdisk命令2.gdisk命令3.mkfs命令4.mkswap命令5.mount命令6.umount命令7.df命令8.lsblk命令总结前言
在日常中磁盘的创建和删除可以说是最家常便饭,也是运维开发人员的必修课。
一、磁盘结构
硬盘的物理结构有盘片、磁头
盘片:硬盘有多个盘片,每个盘片有两面
磁头:每面有一个磁头
硬盘的数据结构
扇区:盘片被分为多个扇形区域,每个扇形区域可以存放512字节的数据(硬盘的最小存储单位)
磁道:同一盘片不同半径的同心圆
柱面:不用盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
磁盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数
可以用柱面 / 磁头 / 扇区来唯一定位磁盘上每一个区域
磁盘接口类型:
IDE、SATA、SCIC、SAS、光纤通道
二、磁盘分区
1.MBR与磁盘分区表示
主引导记录(MBR:Master Boot Record)MBR位于硬盘第一个物理扇区处,最大为2.2T,只支持4个主分区
MBR中包含硬盘的主引导程序和硬盘分区表
分区表示有4个分区记录区,每个分区记录区占16个字节Linux中将硬盘、分区等设备都是用文件的形式来表示
2.磁盘分区结构
硬盘中的主分区数目只有4个主分区和扩展分区的序号限制在1~4扩展分区可以再划分出数个逻辑分区逻辑分区的序号始终是从5开始计算三、系统文件类型
XFS文件系统
是一种高性能的日志文件系统,特别擅于处理大文件,可支持上百万T字节的存储空间。由于XFS文件系统开启日志功能,所以纪实发生宕机也不怕数据遭到破坏,这种文件系统可以根据日志记录在短时间内进行数据恢复。
简而言之:存放文件和睦路数据的分区;
高性能的日志文件系统;
CentOS 7系统中默认使用的文件系统。
SWAP
交换文件系统,用于为Linux系统建立交换分区。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物理内存的1.5~2倍。
例如,一个拥有512MB物理内存的主机,其交换分区的大小建议设置为1024MB。如果服务器的物理内存足够大(如8GB以上),就可以不设置交换分区。交换分区不用于直接存储的文件和目录等数据。
Linux支持的其它文件系统类型
FAT16、FAT32、NTFS
EXT4(CentOS 6)、JFS……
EXT4
第四代扩展文件系统,用于存放文件和目录数据的分区,是Linux系统默认使用的文件系统(CentOS 7 默认使用 XFS)。
EXT4是典型的日志文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。
JFS文件系统多用于商业版的UNIX系统中,具有出色的性能表现。
由于NTFS是微软公司的专有文件系统,Linux系统默认只支持从NTFS分区读取文件,如果需要向NTFS分区写入文件数据,需要结合其他辅助软件(如NTFS - 3G)
四、磁盘命令
1.fdisk命令
查看或管理磁盘分区【格式】
fdisk -l [磁盘设备]
或
fdisk [磁盘设备]
Device:分区的设备文件名称。Boot:是否是引导分区。若是,则有“*”标识。Start:该分区在硬盘中的起始位置(柱面数)。End:该分区在硬盘中的结束位置(柱面数)。Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为 1024 字节。Id:分区对应的系统 ID 号。83 表示 Linux 中的 XFS 分区或 EXT4 分区、8e 表示 LVM 逻辑卷。LVM 是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制,与之相关的知识将在后面的章节介绍。System:分区类型。识别到新的硬盘设备后,就可以在该硬盘中建立新的分区了。在 Linux 操作系统中,分区和格式化的过程是相对独立的,关于格式化分区的操作将在后续内容中讲解。
【交互模式常用指令】
m #输入指令模式a #设置可引导标记b #修改bsd的磁盘标签c #设置DOS操作系统兼容标记d #删除一个分区l #显示一直的分区类型,其中82为Linux swap分区,83为Linux分区m #显示帮助菜单n #增加一个新的分区o #创建一个新的空白DOS分区表p #显示磁盘当前的分区表q #退出fdisk程序,不保存任何修改s #创建一新的空白的Sun磁盘标签t #改变一个分区的系统号码u #改变显示记录单位v #对磁盘分区表进行验证w #保存修改结果并退出fdisk程序x #特殊功能,不建议初学者使用
2.gdisk命令
【命令交互模式中的命令】
b #将GPT数据备份到一个文件c #更改分区名称d #删除一个分区i #显示分区详细信息l #列出已知分区类型。此处8200是Linux swap,8300是Linux filesystem(对应fdisk的82和83)。还有一个8e00是Linux LVMn #增加一个新的分区o #创建一个新的空白的GPT分区表p #显示当前磁盘的分区表q #退出gdisk程序,不保存任何修改r #恢复和转换选项(仅限专家)s #排序分区t #改变分区的类型v #验证磁盘分区表w #将分区表写入裁判并退出(保存并退出)x #额外功能(仅限专家)? #显示帮助信息
3.mkfs命令
Make Filesystem,创建文件系统(格式化)【格式1】
mkfs -t 文件系统类型 跟去设备
【格式2】
mkfs.xfs 分区设备
【示例】
【补充2】
FAT32创建系统文件示例格式
mkfs -t vfat -F 32 /dev/sdb6
或
mkfs.vfat -F 32 /dev/sdb6
4.mkswap命令
make swap,创建交换文件系统【格式】
mkswap 分区设备
【示例】
swapon是开启swapswapof是关闭swap
5.mount命令
挂载文件系统、ISO镜像到指定文件夹【格式】
mount [-t类型] 存储设备 加载点目录mount -o loop ISO镜像文件 挂载点目录-o # options 主要用来描述设备或档案的挂载方式loop #用来把一个文件当成硬盘分区挂载接上系统
6.umount命令
卸载已挂载的文件系统【格式】
umount 存储设备位置umount 挂载点目录
7.df命令
用来检查文件系统的磁盘空间占用情况,使用权限是所有用户【格式】
df [选项]
【主要参数】
-s:对每个Names参数只给出占用的数据块总数。-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。-k:以1024字节为单位列出磁盘空间使用情况。-x:跳过在不同文件系统上的目录不予统计。-l:计算所有的文件大小,对硬链接文件则计算多次。-i:显示inode信息而非块使用量。-h:以容易理解的格式印出文件系统大小,例如136KB、2 4MB、21GB。-P:使用POSIX输出格式。-T:显示文件系统类型。
8.lsblk命令
【格式】
lsblk [选项]
【主要参数】
-a #显示所有设备-b #以bytes方式显示设备大小-d #不显示 slaves 或 holders-D #print discard capabilities-e #排除设备-f #显示文件系统信息-h #显示帮助信息-i #use ascii characters only-m #显示权限信息-l #使用列表格式显示-n #不显示标题-o #输出列-P #使用key=”value”格式显示-r #使用原始格式显示-t #显示拓扑结构信息
总结
管理磁盘和分区
创建文件系统
挂载、卸载文件系统