磁盘分区概述
分区示意图
分区方式
MBR 分区:
1. 最多支持四个主分区
2. 系统只能安装在主分区
2. 扩展分区要占一个主分区
4. MBR最大只支持2TB,但拥有最好的兼容性
GTP 分区:
1. 支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
2. 最大支持18EB的大容量(1EB=1024PB,1PB=1024TB)
3. windows7 64位以后支持gtp
分区方案
挂载目录说明:
/ # 根目录,唯一必须挂载的目录
/home # 家目录,相当于“我的文档”
/usr # 应用程序目录。大部分的软件都安装在这里
/var # 变量文件目录,服务器方面的应用,单独分区可以提高服务器的性能
/boot # 引导文件目录,开机启动时加载的一些文件
/tmp # 临时文件目录
swap # 交换分区,充当虚拟内存
分区方案:
1. 个人使用:
/ # 剩余空间
/boot # 100~200MB
swap # 内存大小*1~1.5倍
2. 服务器使用:
/ # 剩余空间
/boot # 100~200MB
/home # 硬盘大小*60%
/var # 硬盘大小*10%
/usr # 硬盘大小*20%
swap # 内存大小*1~1.5倍
或
/ # 剩余空间
/boot # 100~200MB
/home # 硬盘大小*4%
/var # 硬盘大小*70%
/usr # 硬盘大小*6%
/tmp # 硬盘大小*10%
swap # 内存大小*1~1.5倍
分区方案关键点:
1. 大数据库一般要加大/usr挂载点
2. 多用户、下载类、多存储文件等要加大/home挂载点
3. 文件小,用户多要注意/tmp和/var挂载点大小
磁盘设备信息
lsblk:列出块设备信息
语法:
lsblk <选项> <参数>
选项:
-a, --all # 显示所有设备
-b, --bytes # 以bytes方式显示设备大小
-d, --nodeps # 不显示 slaves 或 holders
-D, --discard # 打印时丢弃能力
-e, --exclude <list> # 排除设备 (default: RAM disks)
-f, --fs # 显示文件系统信息
-i, --ascii # 只使用 ascii 字符
-m, --perms # 显示权限信息
-l, --list # 使用列表格式显示
-n, --noheadings # 不显示标题
-o, --output <list> # 输出列
-P, --pairs # 使用key="value"格式显示
-r, --raw # 使用原始格式显示
-t, --topology # 显示拓扑结构信息
参数:
设备文件 # 指定要显示信息的设备文件
实例:
lsblk -f # 以树状列出系统分区和挂载信息
磁盘分区
fdisk:查看磁盘使用情况和分区
语法:
fdisk <选项> <参数>
选项:
-b<分区大小> # 指定每个分区的大小
-l # 列出指定的外围设备的分区表状况
-s<分区编号> # 将指定的分区大小输出到标准输出上,单位为区块
-u # 搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址
参数:
设备文件 # 指定要进行分区或者显示分区的硬盘设备文件
实例:
fdisk -l # 显示分区情况
fdisk /dev/sdb # 开始对/sdb分区
菜单操作:
a # 设置启动分区
b # 编辑分区标签
c # 切换dos兼容性标志
d # 删除分区
l # 显示分区类型
m # 输出帮助信息
n # 新建分区
e # e是扩展分区
p # p是主分区
o # 新建DOS分区表
p # 打印分区表
q # 退出不保存
s # 新建Sun磁盘标签
t # 设置分区号
u # 改变显示的单位
v # 检查验证分区表
w # 保存分区表
x # 扩展应用,高级功能
磁盘格式化
mkfs:设备上创建Linux文件系统
语法:
mkfs <选项> <参数>
选项:
fs # 指定建立文件系统时的参数
-t<文件系统类型> # 指定要建立何种文件系统
-v # 显示版本信息与详细的使用方法
-V # 显示简要的使用方法
-c # 在制做档案系统前,检查该partition是否有坏轨
参数:
文件系统 # 指定要创建的文件系统对应的设备文件名
块数 # 指定文件系统的磁盘块数
实例:
mkfs -t ext4 /dev/sdb1 # 将sdb1分区格式化为ext4格式
磁盘挂载
mount:加载文件系统到指定的挂载点
语法:
mount <选项> <参数>
选项:
-V # 显示程序版本
-l # 显示已加载的文件系统列表
-h # 显示帮助信息并退出
-v # 冗长模式,输出指令执行的详细信息
-n # 加载没有写入文件“/etc/mtab”中的文件系统
-r # 将文件系统加载为只读模式
-a # 加载文件“/etc/fstab”中描述的所有文件系统
-t # 指定档案系统形态,通常不必指定,mount会自动选择正确形态
参数:
设备文件名 # 指定要加载的文件系统对应的设备名
加载点 # 指定加载点目录
实例:
mount /dev/sdb1 /mnt/mymount # 将sdb1分区挂载到mymount目录
磁盘卸载
umount:卸载已经加载的文件系统
语法:
umount <选项> <参数>
选项:
-a # 卸除/etc/mtab中记录的所有文件系统
-n # 卸除时不要将信息存入/etc/mtab文件中
-r # 若无法成功卸除,则尝试以只读的方式重新挂入文件系统
-t<文件系统类型> # 仅卸除选项中所指定的文件系统
-v # 执行时显示详细的信息
参数:
文件系统 # 指定要卸载的文件系统或者其对应的设备文件名
实例:
umount -v /dev/sda1 # 通过设备名卸载
umount -v /mnt/mymount/ # 通过挂载点卸载
磁盘情况查询
df:显示磁盘分区空间使用情况
语法:
df <选项> <参数>
选项:
-a或--all # 包含全部的文件系统
--block-size=<区块大小> # 以指定的区块大小来显示区块数目
-h或--human-readable # 以可读性较高的方式来显示信息
-H或--si # 与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes
-i或--inodes # 显示inode的信息
-k或--kilobytes # 指定区块大小为1024字节
-l或--local # 仅显示本地端的文件系统
-m或--megabytes # 指定区块大小为1048576字节
--no-sync # 在取得磁盘使用信息前,不要执行sync指令,此为预设值
-P或--portability # 使用POSIX的输出格式
--sync # 在取得磁盘使用信息前,先执行sync指令
-t<文件系统类型>或--type=<文件系统类型> # 仅显示指定文件系统类型的磁盘信息
-T或--print-type # 显示文件系统的类型
-x<文件系统类型>或--exclude-type=<文件系统类型> # 不要显示指定文件系统类型的磁盘信息
参数:
文件 # 指定文件系统上的文件
实例:
df # 查看系统磁盘设备,默认是KB为单位
df -h # 查看系统磁盘设备,以KB以上的单位显示
du:显示文件或目录磁盘空间使用情况
语法:
du <选项> <参数>
选项:
-a或-all # 显示目录中个别文件的大小
-b或-bytes # 显示目录或文件大小时,以byte为单位
-c或--total # 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
-D或--dereference-args # 显示指定符号连接的源文件大小
-h或--human-readable # 以K,M,G为单位,提高信息的可读性
-H或--si # 与-h参数相同,但是K,M,G是以1000为换算单位
-k或--kilobytes # 以KB(1024bytes)为单位输出
-l或--count-links # 重复计算硬件链接的文件
-L<符号链接>或--dereference<符号链接> # 显示选项中所指定符号链接的源文件大小
-m或--megabytes # 以MB为单位输出
-s或--summarize # 仅显示总计,只列出最后加总的值
-S或--separate-dirs # 显示个别目录的大小时,并不含其子目录的大小
-x或--one-file-xystem # 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过
-X<文件>或--exclude-from=<文件> # 在<文件>指定目录或文件
--exclude=<目录或文件> # 略过指定的目录或文件
--max-depth=<目录层数> # 超过指定层数的目录后,予以忽略
参数:
文件 # 指定文件系统上的文件
实例:
du # 显示目录或者文件所占空间
du -h # 显示目录或者文件所占空间,以K,M,G为单位显示
du -ach --max-depth=1 /opt # 显示opt目录磁盘占用空间,深度为1