磁盘管理¶
- 裸磁盘到可使用需要经过3个步骤:分区 --> 格式化 --> 挂载
- 参考
1 回环设备¶
2 df¶
- 语法:
df [OPTION]... [FILE]...
-a
:列出所有的文件系统,包括系统特有的 /proc 等文件系统;-h
:以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;-H
:以 M=1000K 取代 M=1024K 的进位方式;-T
:显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;-i
:不用硬盘容量,而以 inode 的数量来显示- 功能:(全称disk full)列出文件系统的整体磁盘空间使用量
- 示例1:查看系统所有文件系统(不包括特殊的文件系统)
$ df -h
文件系统 容量 已用 可用 已用% 挂载点
udev 1.9G 0 1.9G 0% /dev
tmpfs 391M 2.8M 388M 1% /run
/dev/sda5 15G 6.7G 7.4G 48% /
tmpfs 2.0G 7.2M 1.9G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda3 11G 6.8G 3.5G 66% /recovery
/dev/sda1 1.5G 287M 1.1G 21% /boot
/dev/sda7 16G 2.2G 13G 15% /data
tmpfs 391M 32K 391M 1% /run/user/1000
- 示例2:查看指定目录或文件
df -h /home/shw
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda7 16G 2.2G 13G 15% /home
3 du¶
- 语法:
du [OPTION]... [FILE]...
-a
:列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。-h
:以人们较易读的容量格式 (G/M) 显示;-c
:打印出总用量信息-d[depth]
:显示深度为depth的子目录信息-s
:列出总量而已,而不列出每个各别的目录占用容量;-S
:不包括子目录下的总计,与 -s 有点差别。- 功能:(全称disk used)检查磁盘空间使用量
- 示例1: 默认递归打印当前目录下所有目录磁盘使用量
$ ls
a.out class.cpp network sed.script test_lambda.cc test_lambda.i
$ du
4 ./network
672 .
- 示例2:文件也单独打印出
du -a
4 ./test_lambda.cc
4 ./sed.script
4 ./class.cpp
4 ./network
20 ./a.out
632 ./test_lambda.i
672 .
- 示例3:-s、-S、-c比较
$ du
4 ./network
672 .
$ du -s
672 .
$ du -S
4 ./network
668 .
$ du -c
4 ./network
672 .
672 总用量
4 lsblk¶
- 功能:列出磁盘设备
- 语法:
lsblk [option]
-a
:会列出所有设备,包括空设备(默认不列出空设备)-p
:显示设备的全路径- 示例1:显示所有块设备
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 256G 0 disk
sdb 8:16 0 256G 0 disk /
$ lsblk -a
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
ram0 1:0 0 64M 0 disk
ram1 1:1 0 64M 0 disk
ram2 1:2 0 64M 0 disk
ram3 1:3 0 64M 0 disk
ram4 1:4 0 64M 0 disk
ram5 1:5 0 64M 0 disk
ram6 1:6 0 64M 0 disk
ram7 1:7 0 64M 0 disk
ram8 1:8 0 64M 0 disk
ram9 1:9 0 64M 0 disk
ram10 1:10 0 64M 0 disk
ram11 1:11 0 64M 0 disk
ram12 1:12 0 64M 0 disk
ram13 1:13 0 64M 0 disk
ram14 1:14 0 64M 0 disk
ram15 1:15 0 64M 0 disk
loop0 7:0 0 0 loop
loop1 7:1 0 0 loop
loop2 7:2 0 0 loop
loop3 7:3 0 0 loop
loop4 7:4 0 0 loop
loop5 7:5 0 0 loop
loop6 7:6 0 0 loop
loop7 7:7 0 0 loop
sda 8:0 0 256G 0 disk
sdb 8:16 0 256G 0 disk /
- 示例2:显示块设备全路径
$ lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/sda 8:0 0 256G 0 disk
/dev/sdb 8:16 0 256G 0 disk /
5 fdisk¶
1. 主分区+扩展分区=4
2. 主分区可以创建文件系统
3. 扩展分区不能直接创建文件系统,还需要再分为逻辑分区,然后在逻辑分区创建文件系统
- 功能:对磁盘进行分区
5.1 fdisk -l查看磁盘分区信息¶
fdisk -l 显示的Boot那一栏有个`*`表示是引导分区
- 示例:有2块磁盘sda、sdb;sdb还没有进行分区,sda分了7个区
$ fdisk -l
Disk /dev/sda: 64 GiB, 68719476736 bytes, 134217728 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xad40246b
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 3147775 3145728 1.5G 83 Linux
/dev/sda2 3147776 98566143 95418368 45.5G 5 Extended
/dev/sda3 98566144 121634815 23068672 11G 83 Linux
/dev/sda4 121634816 134215679 12580864 6G 82 Linux swap / Solaris
/dev/sda5 3149824 34605055 31455232 15G 83 Linux
/dev/sda6 34607104 66062335 31455232 15G 83 Linux
/dev/sda7 66064384 98566143 32501760 15.5G 83 Linux
Partition table entries are not in disk order.
Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x92c2fc7a
5.2 fdisk内部操作¶
fdisk的所有操作都会先保存在内存中,当输入`w`后才会真正的区执行,输入`q`则放弃之前的操作
通过在命令行输入fdisk 磁盘名
(比如 fdisk /dev/sda)进入某一个磁盘分区操作界面
- 命令:
- m
:打印可选参数帮助信息
- n
:创建分区
- d
:删除分区
- t
:改变分区类型
- p
:打印分区信息
- F
:打印未分区空间信息
- w
:将之前操作写入磁盘退出(执行分区)
- q
:放弃之前所有操作并退出(放弃分区)
6 mkfs¶
在已经格式化文件系统的分区上,使用`mkfs -f `强制覆盖
- 语法:
mkfs [-t 文件系统格式] 设备文件名
- 功能:创建文件系统(在分区后的设备只后执行)
- 技巧:查看支持的文件系统名,
mkfs [TAB][TAB]
在输入mkfs时双击tab键会显示所有支持文件系统
$ mkfs
mkfs mkfs.cramfs mkfs.ext3 mkfs.jfs mkfs.nilfs2 mkfs.vfat
mkfs.bfs mkfs.exfat mkfs.ext4 mkfs.minix mkfs.ntfs mkfs.xfs
mkfs.btrfs mkfs.ext2 mkfs.fat mkfs.msdos mkfs.reiserfs
- 示例:
$ mkfs -t ext4 /dev/sdb1
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 624744 4k blocks and 156480 inodes
Filesystem UUID: 9a8d4992-6c3e-4a94-8f30-11615bfac5dd
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
7 mount、umount¶
- 语法:
mount -t [文件系统名] 分区设备名[/dev/sda1] 挂载目录[/dev/mount_dir]
umount 分区设备名[/dev/sda1]
- 功能:挂载、卸载文件系统
- 示例:挂载
$ mount -t ext4 /dev/sdb1 /home/shw/mount1
$ df -h|grep /dev/sdb1
/dev/sdb1 2.3G 7.2M 2.2G 1% /home/shw/mount1
$ df -hT /home/shw/mount1
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sdb1 ext4 2.3G 7.2M 2.2G 1% /home/shw/mount1
- 示例:卸载
$ umount /dev/sdb1
$ df -hT /home/shw/mount1
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda7 ext4 16G 2.2G 13G 16% /home
$ df -h|grep /dev/sdb1
7.1 永久挂载磁盘¶
- 编辑/etc/fstab 文件,插入挂载信息。
# 设备 挂载点 文件系统类型 挂载参数 是否备份 是否检测
/dev/sda /data1 xfs defaults 0 0
linux 永久挂载磁盘重启后生效。