df命令

用于查看已挂载磁盘的总容量、使用容量、属于容量;不加参数以kb为单位显示; 实验1:

[root@jinkai01 ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/mapper/centos-root 16558080 1337496 15220584 9% / devtmpfs 485820 0 485820 0% /dev tmpfs 497948 0 497948 0% /dev/shm tmpfs 497948 7828 490120 2% /run tmpfs 497948 0 497948 0% /sys/fs/cgroup /dev/sda1 201380 112764 88616 56% /boot tmpfs 99592 0 99592 0% /run/user/0

参数: -i:表示查看inodes的使用情况,如果使用已用100%,即使磁盘空间富余,也会提示磁盘空间已满; -h:表示使用合适的单位显示,例如GB/TB/MB; -k、-m:分别表示已KB和MB为单位显示; 实验1:查看inodes使用情况,将tmpfs过滤掉grep -v 的作用是过滤掉包含tmpfs字符串的一行

[root@jinkai01 ~]# df -i | grep -v tmpfs 文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点 /dev/mapper/centos-root 8284160 31618 8252542 1% / /dev/sda1 102400 326 102074 1% /boot

实验2:使用合适单位显示磁盘空间 df -h

[root@jinkai01 ~]# df -h | grep -v tmpfs 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 16G 1.3G 15G 9% / /dev/sda1 197M 111M 87M 56% /boot

实验3:用MB和KB来显示磁盘空间;df -m | df -k

[root@jinkai01 ~]# df -m | grep -v tmpfs 文件系统 1M-块 已用 可用 已用% 挂载点 /dev/mapper/centos-root 16170 1307 14864 9% / /dev/sda1 197 111 87 56% /boot [root@jinkai01 ~]# df -k | grep -v tmpfs 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/mapper/centos-root 16558080 1337452 15220628 9% / /dev/sda1 201380 112764 88616 56% /boot

du命令

用来查看某个目录或文件所占空间的大小; 格式: du [参数][文件或目录名] -a:表示全部文件和目录的大小都列出来,默认单位为kb; -b:表示列出值为B为单位输出; -m:表示以M为单位输出; -h:表示自动调节单位显示,在数值后面加上单位表示;(推荐使用) -s:表示只列出总和;例如du -s /root/ 只会列出root目录的作用空间,不会显示目录下的子目录文件;(推荐与-h一起使用)

实验1:查看/root/目录占用空间大小,自动调节实用单位显示 du -sh

[root@jinkai01 ~]# du -sh /root/ 72K /root/

磁盘分区

科普知识:主分区与扩展分区以及逻辑分区 假设Windows系统用一个硬盘划分CDEF四个区 首先:划分一个主分区C盘 C盘为系统盘,那么我们就把它设置为主分区开机引导系统启动; 剩下的划分为一个扩展分区或多个扩展分区; 然后将扩展分区转化为逻辑分区才是DEF盘; DEF盘首先是逻辑分区才能使用,而逻辑分区是扩展分区转化来的;

首先我们先增加一块硬盘,20G左右; 虚拟机用户步骤如下: 1、右键当前虚拟机选项卡,选“设置”; 2、点击对话框中的“添加”按钮,在弹出来的框框中选择“硬盘”,下一步; 3、选择新磁盘的大小20G,点击下一步; 4、在后面的对话框中默认配置,直接下一步,直到完成为止**;

fdisk命令

这是一个磁盘分区工具,只能划分小于2TB的分区; 格式: fdisk [参数][设备名称] 查看系统中磁盘设备以及分区情况 第一步:查看模式 使用fdisk -l我们会发现系统拥有两块硬盘,分别是21.5GB的sda与21.5GB的sdb;

[root@jinkai01 ~]# fdisk -l /dev/sd*

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000df39d

设备 Boot Start End Blocks Id System /dev/sda1 * 2048 411647 204800 83 Linux /dev/sda2 411648 41943039 20765696 8e Linux LVM

磁盘 /dev/sda1:209 MB, 209715200 字节,409600 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sda2:21.3 GB, 21264072704 字节,41531392 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节

第二步:分区模式 使用fdisk命令不带参数,进入分区模式; fdisk /dev/sdb

[root@jinkai01 ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。

Device does not contain a recognized partition table 使用磁盘标识符 0x6eda423e 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m 命令操作 a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)

其中命令参意思为: n:建立一个新的分区; w:保存; q:退出; d:删除一个分区; p:表示打印当前磁盘的分区情况 我们先选择n建立一个新分区

命令(输入 m 获取帮助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended

此时提示我们两个选项 p:主分区(最多4个,主分区+扩展分区=4) e:扩展分区 根据提示我们对新分区定义容量以及分区号

Select (default p): p 分区号 (1-4,默认 1):1 起始 扇区 (2048-41943039,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G 分区 1 已设置为 Linux 类型,大小设为 2 GiB

分区好后,我们使用p来查看分区情况; 我们已经分好了4个区,3个主分区、一个扩展分区; 命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x6eda423e

设备 Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 83 Linux /dev/sdb2 4196352 6244351 1024000 83 Linux /dev/sdb3 6244352 8292351 1024000 83 Linux /dev/sdb4 8292352 16680959 4194304 5 Extended

命令(输入 m 获取帮助):

注意:扩展分区要设置成逻辑分区才能正常使用,也就是说划分扩展分区后,还要将扩展分区划分成逻辑分区; 扩展分区划分逻辑分区: 4为扩展分区,123为主分区;逻辑分区将4号扩展分区划分为5和6;划分完1234后,再使用n新建会将4扩展分区转化为逻辑分区5和6(以及78910等)

命令(输入 m 获取帮助):n All primary partitions are in use 添加逻辑分区 5 起始 扇区 (8294400-16680959,默认为 8294400): 将使用默认值 8294400 Last 扇区, +扇区 or +size{K,M,G} (8294400-16680959,默认为 16680959):+1000M 分区 5 已设置为 Linux 类型,大小设为 1000 MiB

命令(输入 m 获取帮助):n
All primary partitions are in use 添加逻辑分区 6 起始 扇区 (10344448-16680959,默认为 10344448): 将使用默认值 10344448 Last 扇区, +扇区 or +size{K,M,G} (10344448-16680959,默认为 16680959):+1000M 分区 6 已设置为 Linux 类型,大小设为 1000 MiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x6eda423e

设备 Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 83 Linux /dev/sdb2 4196352 6244351 1024000 83 Linux /dev/sdb3 6244352 8292351 1024000 83 Linux /dev/sdb4 8292352 16680959 4194304 5 Extended /dev/sdb5 8294400 10342399 1024000 83 Linux /dev/sdb6 10344448 12392447 1024000 83 Linux

命令(输入 m 获取帮助): 记得要用w保存好刚刚的分区; 命令(输入 m 获取帮助):w The partition table has been altered!

Calling ioctl() to re-read partition table. 正在同步磁盘

删除分区:

使用d选项来删除分区; 首先必须加入分区界面,也就是fdisk /dev/sdb 在界面按d删除,然后选中分区号,就可以删除分区了;

[root@jinkai01 ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。

命令(输入 m 获取帮助):d 分区号 (1-6,默认 6):6 分区 6 已删除

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x6eda423e

设备 Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 83 Linux /dev/sdb2 4196352 6244351 1024000 83 Linux /dev/sdb3 6244352 8292351 1024000 83 Linux /dev/sdb4 8292352 16680959 4194304 5 Extended /dev/sdb5 8294400 10342399 1024000 83 Linux 命令(输入 m 获取帮助):

磁盘格式化

[root@jinkai ~]# cat /etc/filesystems xfs ext4 ext3 ext2 nodev proc nodev devpts iso9660 vfat hfs hfsplus * [root@jinkai ~]#

常用的磁盘格式 xfs:常用于centos7系统 ext4:常用与centos6系统 ext3:用于centos5系统 虚拟机添加新磁盘如果fdisk 无法识别到,可以重启系统,或者echo "- - -" > /sys/class/scsi_host/host0/scan mount 查看当前磁盘使用格式(后续会用到另外一个命令blkid)

[root@jinkai01 tmp]# mount | grep "/dev/sd" /dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,noquota)

mke2fs命令

不支持xfs格式化 mke2fs [参数][设备]

参数: -b:表示分区时设定每个数据区块占用的空间大小。目前,每个数据块支持1024B、2048B以 及4096B,一旦超过4096B 将无法实现挂载。 -i:表示设定inode的大小。 -N:表示设定inode的数量。有时默认的inode数不够用,所以要自定义inode的数量。 -c:表示在格式化前先检测一下磁盘是否有问题。加上这个选项后,运行速度会非常慢。 -L:表示预设该分区的标签(label)。 -j:表示建立ext3格式的分区。如果使用mkfs.ext3格式,就不用加这个选项了。 -t:用来指定文件系统的类型,可以是ext2、ext3 ,也可以是 ext4。 -m:指定预留空间大小

-t 指定磁盘文件类型 **实验1:指定/dev/sdb2的文件类型为ext4 **

[root@jinkai01 tmp]# mke2fs -t ext4 /dev/sdb2 mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@jinkai01 tmp]# blkid /dev/sdb2 /dev/sdb2 UUID="2d5c5887-f777-46b9-b559-660b145e7365" TYPE="ext4"

指定磁盘LABEL名称 -L 实验2:指定/dev/sdb2的名称或标签为test02

[root@jinkai01 tmp]# mke2fs -L test02 /dev/sdb2 mke2fs 1.42.9 (28-Dec-2013) 文件系统标签=test02 OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376

Allocating group tables: 完成
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成

[root@jinkai01 tmp]# blkid /dev/sdb2 /dev/sdb2: LABEL="test02" UUID="deff6aba-d524-49e0-b99e-6e54fbcd298c" TYPE="ext2"

实验3:调整块和inode的比例以及预留空间的百分比

[root@jinkai01 /]# mke2fs -i 8192 -t ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 262144 inodes, 524288 blocks 默认比例是1:4 一个inod 对应四个块,一个块是4KB,四个块就是16KB 26214 blocks (5.00%) reserved for the super user

[root@jinkai01 /]#** mke2fs -m 1 -t ext4 /dev/sdb1** 5242 blocks (1.00%) reserved for the super user

mkfs命令

格式: mkfs.[文件格式][参数][设备] mkfs.xfs -f /dev/sdb3 参数: -f:强制执行 -b:指定块文件的大小,比如-b 2048 代表指定块大小为2048B也就是2KB

[root@jinkai01 tmp]# mkfs.xfs -f /dev/sdb3 meta-data=/dev/sdb3 isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0

blkid命令

查看硬盘分区的格式与UUID 格式: blkid [设备] blkid /dev/sdb3

[root@jinkai01 tmp]# blkid /dev/sdb3 /dev/sdb3: UUID="64abf4be-acc2-4582-90db-6e6ea02f6ca7" TYPE="xfs"

磁盘挂载

**挂载磁盘:建议你在挂载磁盘分区时,尽量使用UUID或者LABEL这两种方法 mount命令 -a 选项:重新挂载 -t选项:用来指定挂载的分区类型,默认不指定,会自动识别。 -o选项:用来指定挂载的分区有哪些特性,即/etc/fstab配置文件中第4列的那些 格式: mount [设备][挂载点] mount /dev/sdb2 ** 实验1:将sdb2挂载到/mnt/目录下

[root@jinkai01 tmp]# mount /dev/sdb2 /mnt/ [root@jinkai01 tmp]# df -h | grep -v tmpfs 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 16G 1.3G 15G 9% / /dev/sda1 197M 111M 87M 56% /boot /dev/sdb2 1008M 1.3M 956M 1% /mnt/etc/fstab

配置文件 /etc/fstab 开机自动挂载设备文件 先查看/etc/fstab文件

[root@jinkai01 tmp]# cat /etc/fstab /dev/mapper/centos-root / xfs defaults 0 0 UUID=8d93bf04-faef-465d-9e2e-a2398218c404 /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0

第1列就是分区的标识,可以写分区的LABEL、分区的UUID,也可以写分区名(/dev/sda1)。 第2列是挂载点。 第3列是分区的格式。 第4列是mount的一些挂载参数。一般情况下,直接写defaults即可。 第5列的数字表示是否被dump备份。1表示备份,0表示不备份。 第6列的数字表示开机时是否自检磁盘。1和2都表示检测,0表示不检测。自检时,1比2优先级高,所以先检测1,再检测2。如果有多个分区需要开机检测,就都设置成2,1检测完后会同时检测2。在CentOS 7系统里,所有分区中该列的值都是0。 着重介绍第4列的常用选项。 async/sync:async表示与磁盘和内存不同步。系统每隔一段时间就会把内存数据写入磁盘中,而sync则会时时同步内存和磁盘中的数据。 auto/noauto:表示开机自动挂载/不自动挂载。 default:表示按照大多数永久文件系统的默认值设置挂载定义,它包含了rw、suid、dev、exec、auto、nouser和async。 ro:表示按只读权限挂载。 rw:表示按可读可写权限挂载。 exec/noexec:表示允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,否则将无法使用系统,甚至连mount命令都无法使用。 user/nouser:表示允许/不允许root外的其他用户挂载分区。为了安全,请用nouser。 suid/nosuid:表示允许/不允许分区有suid属性,一般设置nosuid。 usrquota:表示启动用户的磁盘配额模式。磁盘配额会针对用户限定他们使用的磁盘额度。 grquota 表示启动群组的磁盘配额模式

从中我们发现可以在此文件中修改添加可以添加自动挂载按格式在 文档中添加

/dev/sdb2 /mnt xfs defaults 0 0

使用mount -a自动挂载

[root@jinkai01 ~]# mount -a (前提是先把需要挂载的磁盘写到配置文件里面才行,不然输入命令也无法完成自动挂载)

开机自动挂载的另外一种方法,把挂载命令写入到/etc/rc.d/rc.local 里面,然后给予文件执行权限,chmod a+x /etc/rc.d/rc.local mount 命令最好使用绝对路径 /usr/bin/mount

vim /etc/rc.d/rc.local /usr/bin/mount UUID="92f01dbf-72b1-49e4-aac6-1485e7124dce" /mnt [root@jinkai01 ~]# chmod a+x /etc/rc.d/rc.local

卸载磁盘:

umount [设备]

实验:将sdb2卸载

[root@jinkai01 tmp]# df -h | grep -v tmpfs 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 16G 1.3G 15G 9% / /dev/sda1 197M 111M 87M 56% /boot /dev/sdb2 1008M 1.3M 956M 1% /mnt [root@jinkai01 tmp]# umount /dev/sdb2 [root@jinkai01 tmp]# df -h | grep -v tmpfs 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 16G 1.3G 15G 9% / /dev/sda1 197M 111M 87M 56% /boot

手动增加swap空间

swap类似于Windows的虚拟内存,分区时一般指定虚拟内存的大小是实际内存的2倍; 增加虚拟磁盘的思路为:建立swapfile——>格式化为swap格式——>启用虚拟磁盘 建立swapfile 建立虚拟磁盘/tmp/newdisk,块文件为100M每个,共1个,也就是100M;

[root@jinkai01 /]# dd if=/dev/zero of=/tmp/newdisk bs=100M count=1 记录了1+0 的读入 记录了1+0 的写出 104857600字节(105 MB)已复制,2.89392 秒,36.2 MB/秒 [root@jinkai01 /]# du -sh /tmp/newdisk 100M /tmp/newdisk

格式化新磁盘

mkswap -f [虚拟磁盘路径]

[root@jinkai01 /]# mkswap -f /tmp/newdisk 正在设置交换空间版本 1,大小 = 102396 KiB 无标签,UUID=6e731cb1-8879-4847-902d-a8a85c02d1c1

加载启用虚拟磁盘

swapon [虚拟磁盘路径]

[root@jinkai01 /]# free -m total used free shared buff/cache available Mem: 972 124 608 7 239 679 Swap: 4095 0 4095 [root@jinkai01 /]# swapon /tmp/newdisk swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。 [root@jinkai01 /]# free -m total used free shared buff/cache available Mem: 972 124 608 7 239 679 Swap: 4195 0 4195

卸载虚拟磁盘

swapoff [虚拟磁盘路径] swapoff /tmp/newdisk

[root@jinkai01 /]# swapoff /tmp/newdisk [root@jinkai01 /]# free -m total used free shared buff/cache available Mem: 972 124 608 7 239 679 Swap: 4095 0 4095