常用命令--磁盘管理

包括分区查看、创建、修改…及格式化,挂载等操作

mknod

mknod [OPTION]... NAME TYPE [MAJOR MINOR]
创建块设备或字符设备

-m MODE:创建后设备文件访问权限

1
mknod -m 660 /dev/test c 111 1

fdisk

fdisk -l [-u][device...]
列出指定磁盘设备上的分区情况或管理分区

-l:列出指定的外围设备的分区表状况

  • 磁盘分区操作 如:fdisk /dev/sda的常用命令
    m:查看帮助
    p:显示现有分区
    n:创建新分区
    d:删除已有分区
    t:修改分区类型
    l:查看所有分区ID
    w:保存并退出
    q:不保存退出
  • 在已分区且挂载的某分区上创建新分区时,内核可能无法识别出新分区,/proc/partitions文件记录
  1. CentOS 5: partprobe [device]
  2. CentOS6, 7:partx -a [device](执行两次)或kpartx -af [device]
  • 命令输入错误时,使用ctrl+backspace删除,
1
2
fdisk -l        # 查看磁盘分区信息  
fdisk /dev/sda # 管理第一块磁盘包括查看,创建,删除,修改等分区完成后需要格式化mkfs.*或mke2fs 及挂载mount后才能使用

parted

parted [option] device [command]
fdisk命令无法支持GPT分区方式,因此只能使用parted命令来实现划分大于2TB的分区,分区后使用mkfs相关命令格式化磁盘

  • [option]

-l:显示所有磁盘分区信息
-m
-s:不提示用户
-i:必要时提示用户

  • [command]

mklabel LABEL-TYPE:创建新分区表类型,常用类型有msdos(MBR),gpt
mkpart PART-type [ext4|swap|xfs] start end:创建分区,PART包括primary,logicalextended
rescue START END:恢复已被删除的分区
rm PARTITION:删除分区,如:rm 2
set partition flag state:设置分区标记,如:set 2 [boot|raid|lvm] on|off
select DEVICE:选择磁盘,如:select /dev/sdb
resize START END:调整大小

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 1. 命令行方式 
parted -m -s /dev/sdb mklabel gpt mkpart primary 0% 100%
parted /dev/sdb print
parted /dev/sdb set 2 lvm on
parted /dev/sdb rm 1
parted /dev/sdb rescue 0 -1 # -1为最后

# 2. 交互式方式
parted /dev/sdb

(parted) help [mklabel|mkpart...]
(parted) print
(parted) select /dev/sdc...
(parted) mklabel gpt
(parted) mkpart primary 0 -1
(parted) quit

mkfs

mkfs [OPTION]... DEVICE
创建文件系统

-t {ext2|ext3...}:指定文件类型,作用同mkfs.ext2, mkfs.ext4,mkfs.xfs

1
mkfs -t ext4 /dev/sda4 == mkfs.ext4 /dev/sda4

mke2fs

mke2fs [OPTION]... DEVICE
ext系列专用创建文件系统

-t {ext2|ext3|ext4}:指明类型
-b {1024|2048|4096}:指明块大小
-L LABEL:指明卷标名
-j:创建带有日志功能的ext3
-i #:指明每个Inode的大小
-N #:指明Inode数量
-m #:指明预留空间百分比,无需加%
-O [^]FEATURE:指定某种特性

1
mke2fs -t ext3 -b 2048 -L DATA -o acl /dev/sda6   # 创建ext3格式,块大小为2k,卷标为DATA并开启acl功能

tune2fs

tune2fs [OPTION]... DEVICE
查看或修改ext系统文件系统某些属性,无需格式化

-l:查看超级块内容
-j:ext2–>ext3,无损升级
-L:修改卷标
-m #:调整预留空间
-O [^]FEATURE:开启或关闭某些特性
-o [^]mount_options:开启或关闭某些默认挂载选项,如acl
-i #: 指定挂载使用#天后自检,0或-1表示关闭
-c #: 指定挂载次数达到#次之后进行自检,0或-1表关闭此

1
2
tune2fs -l /dev/sda1                      # 查看sda1磁盘的超级块信息
tune2fs -L MYDAYA -m 5 -o acl /dev/sda1 # 修改卷标为MYDATA,调整预留空间为5%并开启acl功能

dumpe2fs

dumpe2fs [-h] DEVICE
查看ext系列文件系统的属性信息

-h:显示超级块信息,不加则会查看超级块和块组信息

1
dumpe2fs -h /dev/sda3

blkid

查看分区UUID及文件系统格式
blkid [-LU] DEVICE

-L LABEL:根据指定卷标定位设备
-U UUID:根据UUID定位设备

1
2
blkid /dev/sda1   # 查看
blkid -L DATA # 查找卷标为DATA的设备

lsblk

显示磁盘块设备信息

free

查看内存使用情况
buffer: 内存缓冲区,主要用来存放文件元数数据
cached: 内存缓存区,主要用来存放文件内容数据

-m:以m为单位显示
-h:人性化显示

fsck

fsck [OPTION]... DEVICE
用于检查并且试图修复文件系统中的错误。当文件系统发生错误四化,可用fsck指令尝试加以修复,指定类型时可直接使用fsck.ext2, fsck.ext3.., fsck.xfs等

-t {ext3|ext4...}:修复指定文件系统类型,等同fsck.ext4
-a:无须交互而自动自动修复(不建议使用)

e2fsck

e2fsck [OPTION]... DEVICE
检测ext系列文件系统

-y:对所有问题自动回答yes
-f:强制检测,即使文件没问题

1
e2fsck -yf /dev/sda1

mkswap

mkswap [OPTION]... DEVICE
创建swap设备,格式化成swap前需调整分区ID为82

-L:指明卷标
-f:强制

swapon

swapon [OPT] [DEV]
启用交换分区

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

swapoff

swapoff DEV

mount

mount [-nrw] [-t vfstype] [-o options] device dir

-r:只读挂载
-n:默认挂载或卸载会同步更新至/etc/mtab文件中,加-n则不同步
-L LABEL:指明卷标方式
-U UUID:指明UUID方式
--bind:实现将目录绑定在另一目录上,做为临时访问入口
-a:可自动挂载定义在/etc/fstab中所支持的自动挂载设备
-o options:挂载选项,选项如下

  • sync/async:同步/异步
  • atime/noatime:文件或目录被访问时是否更新其访问时间
  • remount:重新挂载
  • acl:支技使用acl功能,tune2fs -o acl DEV
  • ro:只读
  • rw:读写
  • dev/nodev:是否允许创建设备文件
  • exec/noexec:是否允许运行此设备上的程序文件
  • user/nouser:是否允许普通用户挂载此文件系统
  • suid/nosuid:是否支持suid,sgid特殊权限
  • usrquota/grpquota:是否启用配额系统
  • defaults:包括rw, suid, dev, exec, auto, nouser, async, and rela-time
  • loop: 挂载本地回环设备,如本地iso镜像
1
2
3
mount -L MYDATE -r /mnt/cdrom         # 将卷标为MYDATE的分区只读挂载到/mnt/cdrom上
mount -o remount,acl /dev/sda6 /mnt # 重新挂载添加acl功能
mount --bind /dev /mnt # 将/dev绑定在/mnt上

umount

umount DEV|MOUNT_POINT
卸载设备

lsof

-v MOUNT_POINT:查看当前挂载点被哪些进程使用

1
lsof -v /mnt

fuser

-u:查看当前挂载点被哪些进程使用
-k:杀死访问指定文件的所有进程
-m:指定一个被加载的文件系统或一个被加载的块设备

1
fuser -km /mnt

df

df [OPT]... [FILE]
Disk Free 查看磁盘使用情况

-l:只显示本地
-h:人性化显示
-i:inode使用情况
-t:显示文件系统
-H:计算以1000而非1024倍数
-T:显示文件格式

1
df -lh  # 显示本地磁盘使用情况

du

du [OPT] [FILE]
Disk Usage 显示目录文件大小

-s:总大小
-h:人性化显示

1
2
du -sh /etc
查看/etc目录下的文件总大小