磁盘相关命令df、du、fdisk、mkfs.ext4、mount、fstab

时间:2021-04-02 05:24:32

df命令
[daixuan@daixuan ~]$ df           以k为单位查看磁盘,默认方式
[daixuan@daixuan ~]$ df -m      以M为单位查看磁盘
[daixuan@daixuan ~]$ df -h       以取整不固定单位查看磁盘
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        36G  2.4G   31G   8% /
tmpfs           947M     0  947M   0% /dev/shm
/dev/sda1       190M   30M  151M  17% /boot

[daixuan@daixuan ~]$ df -i       -i 查看磁盘的inode号
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda3      2346512 106293 2240219    5% /
tmpfs           187200      1  187199    1% /dev/shm
/dev/sda1        51200     39   51161    1% /boot
注:如果inode分配完,即使磁盘空间有剩余,也无法建立新的分区或文件,只能删除,inode在分区格式化的时候就会分配in
[daixuan@daixuan ~]$ df -T      -T查看磁盘的文件类型
Filesystem     Type  1K-blocks    Used Available Use% Mounted on
/dev/sda3      ext4   36822724 2505816  32439764   8% /
tmpfs          tmpfs    969316       0    969316   0% /dev/shm
/dev/sda1      ext4     194241   29770    154231  17% /boot
[daixuan@daixuan ~]$ free       使用free查看Swap虚拟磁盘
             total       used       free     shared    buffers     cached
Mem:       1938632     324316    1614316        232      51588     208076
-/+ buffers/cache:      64652    1873980
Swap:      4194300          0    4194300


du命令 查看文件或者目录的使用大小
du          列出所有文件和目录大小,单位k
du -m     列出所有文件和目录大小,单位M
du -h      列出所有文件和目录大小,自动选择合适单位是M或k
du -s      查看文件总和,单位k
du -sh    查看文件总和,单位自动选择M或k
du -i       列出所有文件和目录大小,单位k,列出inode号
注意:ls查看文件大小是实际大小,但是du查看文件是以最小块(4k的倍数)为单位,实际上都是一样大小
[root@daixuan ~]# du -sh /etc/init.d/iptables
12K     /etc/init.d/iptables
[root@daixuan ~]# ls -lh /etc/init.d/iptables
-rwxr-xr-x. 1 root root 11K 7月  24 10:08 /etc/init.d/iptables
实际上都是一样大小
[root@daixuan ~]# ls -lb /etc/init.d/iptables
-rwxr-xr-x. 1 root root 11048 7月  24 10:08 /etc/init.d/iptables
[root@daixuan ~]# du -sb /etc/init.d/iptables
11048   /etc/init.d/iptables
fidsk命令
[root@daixuan ~]# fdisk -l    查看所有分区情况,目前我的虚拟机是两块硬盘,sda、sdb,如果继续添加两块硬盘,会变成sdc、sdd、sde
Disk /dev/sda: 42.9 GB, 42949672960 bytes  
。。。。。。
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
。。。。。。
[root@daixuan ~]# fdisk -l /dev/sdb   查看指定磁盘/dev/sdb的分区情况
Disk /dev/sdb: 21.5 GB, 21474836480 bytes

对磁盘进行分区fdisk

linux下主分区p+拓展分区e不超过4个,且拓展分区最多只能分一个,例如:3个主分区p+一个拓展分区e(包含2个逻辑分区l)=共5个分区
[root@daixuan ~]# fdisk /dev/sdb
Command (m for help): m            m显示帮助选项
Command action
   d   delete a partition                   删除分区
   l   list known partition types       列出分区类型编号
   n   add a new partition               增加分区
   p   print the partition table         打印分区信息
   q   quit without saving changes  退出不保存
   w   write table to disk and exit    保存退出
Command (m for help): p              p打印当前分区列表
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x44d9b17c
Device Boot      Start         End      Blocks   Id  System
Command (m for help): n             增加分区
Command action
e   extended    扩展分区
p   primary partition (1-4)  主分区
p                                                  输入p,增加主分区
Partition number (1-4): 1              分区编号,输入1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +3G       分区大小+3G,或者输入具体数字
Command (m for help): p            p查看分区情况
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x577de669
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         393     3156741   83  Linux        主分区已经建立

同理,创建扩展分区,注意:只有在扩展分区创建之后,才能创建逻辑分区
n  e  enter(默认开始cylinder)  2  +5G 
n  l  enter(默认开始cylinder)  2  +5G    w     使用w保存并退出
注:创建逻辑分区的时候选项是:
Command (m for help): n
Command action
l   logical (5 or over)                 创建逻辑分区
p   primary partition (1-4)
知识点:如果磁盘大小大于2T,就不能使用fdisk分区了,只能使用parted /dev/sdb分区。

磁盘格式化
装好的系统添加磁盘后,建立分区后,需要格式化磁盘
[root@daixuan ~]# mkfs.ext4 /dev/sdb1                将/dev/sdb1格式化为ext4
[root@daixuan ~]# mkfs.ext3 -b 2048 /dev/sdb1   将/dev/sdb1格式化为ext3,设定块大小为2048
[root@daixuan ~]# mke2fs -t ext4 -b 2048 -m 1 -L daixuan /dev/sdb1  -t指定文件格式ext4,-b指定块大小为2048,-m指定分区保留未使用空间,-L指定文件系统标签
mke2fs 1.41.12 (17-May-2010)
文件系统标签=daixuan
操作系统:Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
197880 inodes, 1578370 blocks
15783 blocks (1.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=538968064
97 block groups
16384 blocks per group, 16384 fragments per group
2040 inodes per group
Superblock backups stored on blocks:
        16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

为什么要挂载磁盘呢?mount
因为磁盘添加、分区、格式化后,想要往磁盘中写数据,就必须挂载磁盘到目录下(挂载点)。
[root@daixuan ~]# mount /dev/sdb5 /mnt/    挂载/dev/sdb5挂载到/mnt下
[root@daixuan 123]# df -Th    使用df命令查看分区情况,-T显示磁盘类型,-h以M、b、G为单位查看磁盘大小
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda3      ext4    36G  2.4G   31G   8% /
tmpfs          tmpfs  947M     0  947M   0% /dev/shm
/dev/sda1      ext4   190M   30M  151M  17% /boot
/dev/sdb5      ext4   2.0G  9.1M  1.9G   1% /mnt

[root@daixuan 123]# mount LABEL=daixuan /home/daixuan/123/   把文件系统标签=daixuan的分区挂载到目录/home/daixuan/123
[root@daixuan 123]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        36G  2.4G   31G   8% /
tmpfs           947M     0  947M   0% /dev/shm
/dev/sda1       190M   30M  151M  17% /boot
/dev/sdb5       2.0G  9.1M  1.9G   1% /mnt
/dev/sdb5       2.0G  9.1M  1.9G   1% /home/daixuan/123

如何卸载已经挂载的磁盘
情况一:在挂载磁盘下新建了文件或者目录,提示busy,解决方法,退出挂载目录,cd回到根目录,umount /mnt/
[root@daixuan  123]# df -Th
/dev/sdb5      ext4   2.0G  9.1M  1.9G   1% /mnt
[root@daixuan 123]# cd /mnt/
[root@daixuan mnt]# ls
123  lost+found
[root@daixuan mnt]# touch 123
[root@daixuan mnt]# ls
123  lost+found
[root@daixuan mnt]# umount /mnt/
umount: /mnt: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@daixuan mnt]# cd
[root@daixuan ~]# umount /mnt/

情况二:使用-l命令,懒惰的方式退出挂载
[root@daixuan ~]# df -Th
/dev/sdb1      ext3   3.0G   75M  2.8G   3% /home/daixuan/123
[root@daixuan 123]# umount /home/daixuan/123/
umount: /home/daixuan/123: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@daixuan 123]# umount -l /dev/sdb1
[root@daixuan 123]# df -Th
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda3      ext4    36G  2.4G   31G   8% /
tmpfs          tmpfs  947M     0  947M   0% /dev/shm
/dev/sda1      ext4   190M   30M  151M  17% /boot

为了防止磁盘插拔顺序乱掉,可以使用什么方法挂载磁盘?
使用LABEL
使用UUID
使用什么方法可以获得指定分区的uuid?
blkid /dev/sda1
uuid标识分区的一种方法,可以用blkid获得uuid。
[root@daixuan ~]# blkid
/dev/sda3: UUID="4cb5c3c6-6d8f-41fb-b3d9-55898e0be726" TYPE="ext4"
/dev/sda1: UUID="65f34453-9515-40fa-bdd1-ac792827564d" TYPE="ext4"
/dev/sda2: UUID="300e8b6a-73e1-48a6-a01c-6f4b1700fde6" TYPE="swap"
/dev/sdb1: UUID="9e6ae8f2-6f98-4203-aa62-f68c9aafb762" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb5: LABEL="daixuan" UUID="296d91d8-1482-43dc-a6ce-a905681dad47" TYPE="ext4"

[root@daixuan ~]# mount UUID="296d91d8-1482-43dc-a6ce-a905681dad47" /mnt/  通过uuid挂载分区到指定目录
[root@daixuan ~]# df -h
/dev/sdb5       2.0G  9.1M  1.9G   1% /mnt

fstab自动挂载命令
开机就把分区自动挂载上,怎么做?
方法一:修改挂载的配置文件  将磁盘分区,挂载点,选项写到配置文件/etc/fstab
方法二:将挂载的命令写到/etc/rc.local里面,让挂载的命令在开机的时候就运行。
方法一具体如下:
/etc/fstab配置文件,下次启动后会自动挂载分区。
/dev/sdb5      /mnt     ext4                 defaults                                                            0                                         0
挂载分区     挂载点    挂载文件类型   defaults+rw,suid,dev,exec.auto.nouser,async   0日志不备份,1日志备份     是否开机检测磁盘,1根分区,其他分区2开机检测,0开机不检测。
[root@daixuan ~]# mount -a  自动加载/etc/fstab的配置
[root@daixuan ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        36G  2.4G   31G   8% /
tmpfs           947M     0  947M   0% /dev/shm
/dev/sda1       190M   30M  151M  17% /boot
/dev/sdb5       2.0G  9.1M  1.9G   1% /mnt

方法二具体:
[root@daixuan ~]# vi /etc/rc.local
加入下面一行挂载的命令,保存退出即可
mount /dev/sdb1 /home/daixuan/123

本文出自 “梅花香自苦寒来!” 博客,请务必保留此出处http://daixuan.blog.51cto.com/5426657/1717363