磁盘管理相关命令:
df: 列出文件系统的整体磁盘使用情况。
-m:以MB的形式显示;
-h:以容易阅读的GB、MB、KB形式显示;
-H:以M=1000k取代M=1024K的经纬进位方式;
-T:显示文件系统类型;
-i:不用磁盘容量,而以inode的数量显示;
例1:
[root@linuxtest ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.8G 0 1.8G 0% /dev tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs 1.8G 9.2M 1.8G 1% /run tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup /dev/mapper/cl-root 70G 10G 61G 15% / /dev/sda1 1014M 329M 686M 33% /boot /dev/mapper/cl-home 75G 2.0G 73G 3% /home tmpfs 357M 0 357M 0% /run/user/0 /dev/sdb1 2.0G 16K 2.0G 1% /media/udisk
例2:显示 /media/udisk 目录的可用磁盘容量
[root@linuxtest ~]# df -h /media/udisk/ Filesystem Size Used Avail Use% Mounted on /dev/sdb1 2.0G 16K 2.0G 1% /media/udisk
du: 查看文件和目录使用的磁盘空间大小
-a: 列出所有的文件和目录容量,因为默认仅统计目录下的文件量;
-h: 以人类易读形式输出;
例子:
[root@linuxtest /]# du -ah media/ 4.0K media/udisk/System Volume Information/WPSettings.dat 4.0K media/udisk/System Volume Information/IndexerVolumeGuid 12K media/udisk/System Volume Information 16K media/udisk 16K media/
fdisk: 磁盘分区命令
fdisk命令需要管理员权限。终端输入 fdisk 磁盘设备名 , 回车,进入交互式界面。此时输入m可获得帮助信息。
[root@linuxtest ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.32.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): m Help: DOS (MBR) a toggle a bootable flag b edit nested BSD disklabel c toggle the dos compatibility flag Generic d delete a partition F list free unpartitioned space l list known partition types n add a new partition p print the partition table t change a partition type v verify the partition table i print information about a partition Misc m print this menu u change display/entry units x extra functionality (experts only) Script I load disk layout from sfdisk script file O dump disk layout to sfdisk script file Save & Exit w write table to disk and exit q quit without saving changes Create a new label g create a new empty GPT partition table G create a new empty SGI (IRIX) partition table o create a new empty DOS partition table s create a new empty Sun partition table Command (m for help):
常用命令有 q, p , n , w。
p: 打印当前磁盘已有的分区信息(包括在交互式界面下新建的);
n: 新建一个分区;
w: 保存退出;
q: 不保存退出。
例子:在 U盘设备 /dev/sdb 下新建一个分区
[root@linuxtest ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.32.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sdb: 7.4 GiB, 7948206080 bytes, 15523840 sectors 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: 0x00000000 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 4196351 4194304 2G 83 Linux Command (m for help):
可知,该设备共有7.4GB大小,15523840 个扇区(sectors),且已经有一个分区(/dev/sdb1);
输入 n 创建新分区,提示输入分区类型:
Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p):
其中 p 代表主分区(primary), e 代表扩展分区(extended)。此时需注意,因为每个设备的MBR只有64个字节用来创建分区表,而一个分区要占用分区表16字节,即每个设备最多创建4个分区。为了不使得磁盘空间浪费,常将第四个分区创建为扩展分区,并指定大小为磁盘所有剩余空间。以后再创建分区,会自动指向扩展分区。
此处创建主分区即可,输入p,回车,提示输入分区号,默认为2,可直接回车;再提示输入起始扇区,默认为上个分区最后一个扇区号+1,直接回车;
提示指定末尾扇区号,也可输入 +sizes ,如 +2G,即创建2G大小的分区。
输入 p ,可查看刚才创建的分区。
最后输入 w,保存退出。
Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (4196352-15523839, default 4196352): Last sector, +sectors or +size{K,M,G,T,P} (4196352-15523839, default 15523839): +2G Created a new partition 2 of type 'Linux' and of size 2 GiB. Command (m for help): p Disk /dev/sdb: 7.4 GiB, 7948206080 bytes, 15523840 sectors 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: 0x00000000 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 4196351 4194304 2G 83 Linux /dev/sdb2 4196352 8390655 4194304 2G 83 Linux Command (m for help): w The partition table has been altered. Syncing disks. [root@linuxtest ~]#
创建完毕,使用 partprobe 磁盘分区 让内核加载进来。
注:若提示设备正在使用,需要重启来加载,可先卸载 U盘 再重新执行命令。
mkfs(mkfs.vfat、mkfs.ext4等):磁盘分区格式化命令
格式:
mkfs -t TYPE 分区
或mkfs.vfat(ext4)分区
其中mkfs.ext4 、mkfs.vfat 是专门格式化成 ext4、fat32格式的命令。详见man文档。
例子:将 /dev/sdb2 格式化成ext4 文件系统。
[root@linuxtest ~]# mkfs.ext4 /dev/sdb2 mke2fs 1.45.6 (20-Mar-2020) Creating filesystem with 524288 4k blocks and 131072 inodes Filesystem UUID: 3dea9223-232a-405c-9318-2333dc521e77 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
从输出信息可知,新建的文件系统共有 524288 个block ,且每个block大小为4k; 共创建了131072个索引节点(inode),共备份了5个超级块,并给出了具体位置。
mount / umount : 分区挂载 / 卸载
挂载是将已创建了文件系统的分区与系统上某个目录相关联(此目录此前没有被挂载)。这个要被关联的目录称为挂载点。磁盘分区只有被挂载,才能被用户正常使用。且该分区只能通过挂载点访问。
命令格式:
挂载:
mount [-t 文件系统] [-L label卷标] [-o 额外选项] [-n 静默挂载] 磁盘分区 挂载点
卸载:
umount 磁盘分区 或 umount 挂载点
使用mount手动挂载的分区在系统重启后不会自动挂载,要想让其自动挂载,需写入 /etc/fstab 文件。开机后,使用 mount -a 命令可直接挂载 /etc/fstab 文件中所有的设备。
例:挂载 /dev/sdb2 到 /media/udisk2 目录
[root@linuxtest ~]# mkdir /media/udisk2 [root@linuxtest ~]# mount -n /dev/sdb2 /media/udisk2 [root@linuxtest ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs tmpfs 1.8G 9.2M 1.8G 1% /run tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup /dev/mapper/cl-root xfs 70G 10G 61G 15% / /dev/sda1 xfs 1014M 329M 686M 33% /boot /dev/mapper/cl-home xfs 75G 2.0G 73G 3% /home tmpfs tmpfs 357M 0 357M 0% /run/user/0 /dev/sdb1 vfat 2.0G 16K 2.0G 1% /media/udisk /dev/sdb2 ext4 2.0G 6.0M 1.8G 1% /media/udisk2 [root@linuxtest ~]#
lsblk / blkid :查看系统中已有的磁盘设备
lsblk: 以树状图的形式查看设备及分区
[root@linuxtest ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 149.1G 0 disk |-sda1 8:1 0 1G 0 part /boot `-sda2 8:2 0 148.1G 0 part |-cl-root 253:0 0 70G 0 lvm / |-cl-swap 253:1 0 3.8G 0 lvm [SWAP] `-cl-home 253:2 0 74.3G 0 lvm /home sdb 8:16 1 7.4G 0 disk |-sdb1 8:17 1 2G 0 part /media/udisk `-sdb2 8:18 1 2G 0 part /media/udisk2
blkid -o list :查看硬盘设备,包括未挂载
[root@linuxtest ~]# umount /dev/sdb2 [root@linuxtest ~]# blkid -o list device fs_type label mount point UUID ------------------------------------------------------------------------ /dev/sda1 xfs /boot 15f65521-ebd3-41d9-8cbe-4d7003c7c9ee /dev/sda2 LVM2_member (in use) gc2H0t-hjgs-kHzj-816z-EBX4-QW6W-9FTXNM /dev/mapper/cl-root xfs / 902883a6-db99-4264-aeb2-be3e36fe959d /dev/mapper/cl-swap swap [SWAP] b11796e8-dd85-40c9-8687-1be445af5caa /dev/mapper/cl-home xfs /home 31cb46cb-b450-4bbd-a26e-dbdd91809c5e /dev/sdb1 vfat /media/udisk 43DA-8BD8 /dev/sdb2 ext4 (not mounted) 3dea9223-232a-405c-9318-2333dc521e77