流程:新建分区–>刷新分区表–>格式化–>激活
查看信息
[root@server1 ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 147M 1.2G 9.6M 410M 1.5G
Swap: 2.0G 0B 2.0G
[root@server1 ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/dm-1 partition 2097148 0 -2
新建分区(使用sdb2作为交换空间)
[root@server1 ~]# fdisk /dev/sdb
#欢迎使用 fdisk (util-linux 2.23.2)。
#更改将停留在内存中,直到您决定将更改写入磁盘。
#使用写入命令前请三思。
#命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
#分区号 (2-4,默认 2):
#起始 扇区 (4196352-10485759,默认为 4196352):
#将使用默认值 4196352
#Last 扇区, +扇区 or +size{K,M,G} (4196352-10485759,默认为 10485759):+2G
#分区 2 已设置为 Linux 类型,大小设为 2 GiB
#命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
#正在同步磁盘。
[root@server1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
├─sdb1 8:17 0 2G 0 part
└─sdb2 8:18 0 2G 0 part
sr0 11:0 1 973M 0 rom
刷新分区表
[root@server1 ~]# partprobe /dev/sdb
格式化
[root@server1 ~]# mkswap /dev/sdb2
#正在设置交换空间版本 1,大小 = 2097148 KiB
#无标签,UUID=ce1f363b-a131-41d0-9123-345978b1e95e
[root@server1 ~]# blkid /dev/sdb2
/dev/sdb2: UUID="ce1f363b-a131-41d0-9123-345978b1e95e" TYPE="swap"
临时激活swap分区(swapoff临时关闭)
[root@server1 ~]# swapon /dev/sdb2
[root@server1 ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/dm-1 partition 2097148 0 -2
/dev/sdb2 partition 2097148 0 -3
永久激化
[root@server1 ~]# vim /etc/fstab
#追加
/dev/sdb2 swap swap defaults 0 0
dd if=源文件 of=目标文件 bs=复制数据的大小 count=复制的个数
常用示例
1.备份设备文件
[root@server1 ~]# dd if=/dev/sr0 of=/centos7.6.iso
记录了1992704+0 的读入
记录了1992704+0 的写出
1020264448字节(1.0 GB)已复制,31.5341 秒,32.4 MB/秒
2.模拟大文件
#/dev/zero 特殊设备,一般用来模拟一个大文件,源源不断的二进制的bit流;
[root@server1 ~]# dd if=/dev/zero of=/tmp/swap_file bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,2.74676 秒,391 MB/秒
3.损坏系统盘(不要作死)
[root@server1 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=512
模拟大文件
[root@server1 ~]# dd if=/dev/zero of=/tmp/swap_file bs=1M count=1024
#记录了1024+0 的读入
#记录了1024+0 的写出
#1073741824字节(1.1 GB)已复制,2.74676 秒,391 MB/秒
格式化
[root@server1 ~]# mkswap /tmp/swap_file
#正在设置交换空间版本 1,大小 = 1048572 KiB
#无标签,UUID=b2d34da8-3388-4094-9a83-af6a6fe40cf3
激活
[root@server1 ~]# swapon -p 1 /tmp/swap_file
swapon: /tmp/swap_file:不安全的权限 0644,建议使用 0600。
[root@server1 ~]# chmod 0600 /tmp/swap_file
查看
[root@server1 ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 149M 72M 9.6M 1.6G 1.5
Swap: 5.0G 0B 5.0G
作用:限制用户或组对磁盘空间的使用,例如文件服务器,邮件服务器…
案例要求:
创建分区sdb1
[root@server1 ~]# fdisk /dev/sdb
#命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
#分区号 (1-4,默认 1):
#起始 扇区 (2048-10485759,默认为 2048):
#将使用默认值 2048
#Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+2G
#分区 1 已设置为 Linux 类型,大小设为 2 GiB
#命令(输入 m 获取帮助):w
Calling ioctl() to re-read partition table.
#正在同步磁盘。
刷新分区表
[root@server1 ~]# partprobe /dev/sdb
[root@server1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
└─sdb1 8:17 0 2G 0 part
sr0 11:0 1 973M 0 rom
格式化
[root@server1 ~]# mkfs.ext4 /dev/sdb1
挂载
[root@server1 ~]# mkdir /mnt/mount_sdb1
[root@server1 ~]# mount /dev/sdb1 /mnt/mount_sdb1/
[root@server1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 899M 0 899M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.9G 16G 11% /
/dev/sda1 xfs 1014M 194M 821M 20% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/sdb1 ext4 2.0G 6.0M 1.8G 1% /mnt/mount_sdb1
创建用户
[root@server1 ~]# groupadd usergrp
[root@server1 ~]# useradd -g usergrp -b /mnt/mount_sdb1/ user01
[root@server1 ~]# useradd -g usergrp -b /mnt/mount_sdb1/ user02
[root@server1 ~]# useradd -g usergrp -b /mnt/mount_sdb1/ user03
确保文件系统支持配额
[root@server1 ~]# mount |grep mount_sdb1
/dev/sdb1 on /mnt/mount_sdb1 type ext4 (rw,relatime,data=ordered
[root@server1 ~]# mount -o remount,usrquota,grpquota /mnt/mount_sdb1/
[root@server1 ~]# mount |grep mount_sdb1
/dev/sdb1 on /mnt/mount_sdb1 type ext4 (rw,relatime,quota,usrquota,grpquota,data=ordered)
永久支持
[root@server1 ~]# vim /etc/fstab
/dev/sdb1 /mnt/mount_sdb1 ext4 defaults,usrquota,grpquota 0 0
启动quota磁盘配额
[root@server1 ~]# yum install -y quota
[root@server1 ~]# quotacheck -acug
选项说明:
-a:所有分区(已支持配额)
-c:创建
-u:用户
-g:组
[root@server1 ~]# ll /mnt/mount_sdb1/
总用量 44
-rw------- 1 root root 7168 8月 21 12:12 aquota.group
-rw------- 1 root root 7168 8月 21 12:12 aquota.user
drwx------ 2 root root 16384 8月 21 12:06 lost+found
drwx------ 2 user01 usergrp 4096 8月 21 12:07 user01
drwx------ 2 user02 usergrp 4096 8月 21 12:07 user02
drwx------ 2 user03 usergrp 4096 8月 21 12:07 user03
[root@server1 ~]# quotaon -a
编辑限额配置
[root@server1 ~]# edquota -u user01
Disk quotas for user user01 (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 16 409600 512000 4 8 10
soft:又称软限制,当用户到达这个限制以后,系统会给予警告,但仍可写入。
hard:又称硬限制,到达这个限制,就完全禁止任何写入
以下三个为磁盘空间的限制设置:
blocks:已使用空间,无需要设置
soft:用户空间使用限制,为软限制,需要设置
hard:用户空间使用限制,为硬限制,需要设置
以下三个为总文件个数的限制:
inodes:已有文件总数,无需要设置(文件总数限制,如上述创建8-4=4个文件会提醒,只允许创建10-4=6个文件)
soft:文件总数限制,为软限制,需要设置
hard:文件总数限制,为硬限制,需要设置
注:空间限制是以k为单位的。
[root@server1 ~]# edquota -p user01 -u user02
[root@server1 ~]# edquota -p user01 -u user03
查看限制情况
[root@server1 ~]# repquota -as
*** Report for user quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days
Space limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 20K 0K 0K 2 0 0
user01 +- 451M 400M 500M 7days 5 8 10
user02 -- 16K 400M 500M 5 8 10
user03 -- 16K 400M 500M 4 8 10
测试
[user01@server1 ~]$ dd if=/dev/zero of=bigfile bs=1M count=450
sdb1: warning, user block quota exceeded.
记录了450+0 的读入
记录了450+0 的写出
471859200字节(472 MB)已复制,7.2745 秒,64.9 MB/秒
[user02@server1 ~]$ touch file{
1..6}
sdb1: warning, user file quota exceeded.
[user02@server1 ~]$ touch file7
sdb1: write failed, user file limit reached.
touch: 无法创建"file7": 超出磁盘限额
假如我有一块500G的硬盘,将其格式化后会分文三个部分:超级块(superblock),索引节点(inode),数据块(block)
如果我要查看file1文件内容,系统并不是按照文件名去查找,而是根据inode去查找。
具体流程:打开file1–>查看inode–>找到inode对应的数据块–>读取
查看文件的inode [root@server1 tmp]# ll -i 总用量 0 16784325 -rw-r--r-- 1 root root 0 8月 21 12:11 file1 查看文件系统的inode所占空间大小 [root@server1 tmp]# df -ih 文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点 devtmpfs 225K 399 225K 1% /dev tmpfs 228K 1 228K 1% /dev/shm tmpfs 228K 743 227K 1% /run tmpfs 228K 16 228K 1% /sys/fs/cgroup /dev/mapper/centos-root 8.5M 39K 8.5M 1% / /dev/sda1 512K 334 512K 1% /boot tmpfs 228K 1 228K 1% /run/user/0
硬链接:hard link,称inode相同的两个文件互为硬链接
因为查找文件是通过inode号找到数据块,所以互为硬链接的两个文件本质上是同一个文件,内容自然相同。一个文件改变,另一个文件自然改变
删除一个文件,不会影响其他硬链接文件
我们每添加一个硬链接,该文件的inode连接数就会增加1;而且只有当该文件的inode连接数为0时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件inode的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。
需要注意的是,由于技术的局限性,我们不能跨分区对目录文件进行链接
特点
[root@server1 tmp]# ln file1 h_file1
[root@server1 tmp]# ll -i
总用量 0
16784325 -rw-r--r-- 2 root root 0 8月 21 12:11 file1
16784325 -rw-r--r-- 2 root root 0 8月 21 12:11 h_file1
17184545 lrwxrwxrwx 1 root root 5 8月 21 12:52 sl_file1 -> file1
软链接:symbolic link,也称为符号链接
仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,从这一点上来说与Windows系统中的“快捷方式”具有一样的性质
查找文件流程:
打开软连接–>通过路径找到file1–>查看inode–>找到inode对应的数据块–>读取
特点
不论是修改源文件(check),还是修改软链接文件(check-soft),另一个文件中的数据都会发生改变
删除软链接文件,源文件不受影响。而删除原文件,软链接文件将找不到实际的数据,从而显示文件不存在
软链接会新建自己的 inode 信息和 block,只是在 block 中不存储实际文件数据,而存储的是源文件的文件 名及 inode 号
软链接可以链接目录
软链接可以跨分区
软连接与源文件不是同一个文件
创建
[root@server1 tmp]# touch file1
[root@server1 tmp]# ln -s file1 sl_file1
[root@server1 tmp]# ll -i
#总用量 0
16784325 -rw-r--r-- 1 root root 0 8月 21 12:11 file1
17184545 lrwxrwxrwx 1 root root 5 8月 21 12:16 sl_file1 -> file1
删除
[root@server1 tmp]# unlink sl_file1
[root@server1 tmp]# ls
file1