基础概念

一台服务器有多块硬盘,在/dev下,sd开头为物理设备,vd开头为虚拟设备,以[a..z]来命名不同设备,以[1..]命名不同分区,如sda,sdb1,sdb2,IDE设备则是以hd开头

硬盘的分区分为两种:基本分区和扩展分区,要么4基本分区,要么3基本分区+1扩展,扩展分区必须进行再分区才能使用

常用文件系统:ext4:ext3改进版,支持的存储容量高达1EB,且能够有无限多的子目录。另外,Ext4文件系统能够批量分配block块,从而极大地提高了读写效率。

当硬盘被格式化后,linux会创建一个硬盘地图superblock,记录文件系统的整体信息,包括inode/block的总量、使用量、剩余量、文件系统的格式与相关信息

inode:记录文件属性,一个文件使用一个inode,默认128字节,一个block占4B
block:用于存储数据

swap分区是通过在硬盘中预先划分一定空间,吧内存中暂不常使用的数据临时放在硬盘中,以腾出空间给别的更活跃的程序使用的技术

分区管理命令

lsblk:列出分区

[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    2G  0 disk
└─sdb1            8:17   0  500M  0 part /mnt/sdb1
sr0              11:0    1  918M  0 rom

df

-h:易读
-T:显示文件系统类型
[root@server1 ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        17G  1.2G   16G    7% /
devtmpfs                devtmpfs  475M     0  475M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  7.7M  479M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  133M  882M   14% /boot
/dev/sdb1               ext4      477M  2.3M  445M    1% /mnt/sdb1
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0

fdisk:分区管理工具

fdisk 磁盘名
命令(输入 m 获取帮助):m
命令操作
   d   删除分区信息
   l   列出可用分区类型
   m   帮助
   n   添加分区
   p   打印分区信息
   q   不保存退出
   t   改变分区类型
   w   保存退出

fdisk只是暂时性的,需要保存才会写入

mkfs:建立文件系统

mkfs.系统 分区名

mount/umount:临时挂载、卸载

mount 磁盘 挂载点
-a:挂载所有/etc/fstab中定义的文件系统
-t:指定文件系统类型

umount 磁盘

/etc/fstab:永久挂载

/dev/device   mountpoint   type   rules   0   order

设备 挂载点 文件系统 规则 dump系统备份工具,0表示不备份 fsck检查顺序0不检查

规则:

    auto 开机自动挂载
    default 按照大多数永久文件系统的缺省值设置挂载定义
    noauto 开机不自动挂载
    nouser 只有超级用户可以挂载
    ro 按只读权限挂载
    rw 按可读可写权限挂载
    user 任何用户都可以挂载

挂载磁盘步骤

  1. 添加磁盘
  2. fdisk
  3. mkfs
  4. mount或者fstab

案例

永久挂载案例

添加磁盘,发现/dev下多了sdb

fdisk /dev/sdb
n
+500
p发现多了sdb1分区
w保存

mkfs.ext4 /dev/sdb1

blkid /dev/sdb1

vim /etc/fstab

UUID="8b838620-0b0d-4f78-b192-ed60958e7df6" /mnt/sdb1 ext4 defaults 0 0

重启后挂在依然存在
avatar

swap

[root@server1 ~]# umount /dev/sdb1
[root@server1 ~]# vim /etc/fstab #删除原本的挂载信息
[root@server1 ~]# mkswap /dev/sdb1
mkswap: /dev/sdb1: warning: wiping old ext4 signature.
正在设置交换空间版本 1,大小 = 511996 KiB
无标签,UUID=f59a3855-f407-4e0c-a0b8-5b9d8fcf9ff2
[root@server1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M         98M        730M        7.6M        143M        710M
Swap:          2.0G          0B        2.0G
[root@server1 ~]# swapon /dev/sdb1
[root@server1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M         99M        729M        7.6M        143M        710M
Swap:          2.5G          0B        2.5G


vim /etc/fstab


/dev/sdb1 swap swap defaults 0 0

重启后再用free -h查看,发现多出的0.5g还在

vim /etc/fstab #删除刚才加入的那行
swapoff /dev/sdb1
再次查看已经成功卸载

磁盘容量配额

avatar

[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):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (1026048-4194303,默认为 1026048):
将使用默认值 1026048
Last 扇区, +扇区 or +size{K,M,G} (1026048-4194303,默认为 4194303):+1G
分区 2 已设置为 Linux 类型,大小设为 1 GiB

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

磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xc6750702

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     1026047      512000   83  Linux
/dev/sdb2         1026048     3123199     1048576   83  Linux

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。

# 准备好盘

partprobe #重新读取分区表

[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    2G  0 disk
├─sdb1            8:17   0  500M  0 part [SWAP]
└─sdb2            8:18   0    1G  0 part
sr0              11:0    1  918M  0 rom

# 格式化

[root@server1 ~]# mkfs.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@server1 ~]# cd /mnt
[root@server1 mnt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 1月  14 10:29 sdb1
[root@server1 mnt]# mkdir tmp
[root@server1 mnt]# mount /dev/sdb2 /mnt/tmp
[root@server1 mnt]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        17G  1.2G   16G    7% /
devtmpfs                devtmpfs  475M     0  475M    0% /dev
tmpfs                   tmpfs     487M     0  487M    0% /dev/shm
tmpfs                   tmpfs     487M  7.7M  479M    2% /run
tmpfs                   tmpfs     487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  133M  882M   14% /boot
tmpfs                   tmpfs      98M     0   98M    0% /run/user/0
/dev/sdb2               ext4      976M  2.6M  907M    1% /mnt/tmp

# 创建组和指定家目录的用户
[root@server1 mnt]# groupadd usergrp
[root@server1 mnt]# useradd -g usergrp -b /mnt/tmp/ user1
useradd: cannot set SELinux context for home directory /mnt/tmp//user1
[root@server1 mnt]# ^C
[root@server1 mnt]# setenforce 0
[root@server1 mnt]# userdel -r user1
userdel: user1 邮件池 (/var/spool/mail/user1) 未找到
userdel:未找到 user1 的主目录“/mnt/tmp//user1”
[root@server1 mnt]# useradd -g usergrp -b /mnt/tmp/ user1
[root@server1 mnt]# useradd -g usergrp -b /mnt/tmp/ user2

# 查看挂载点是否支持quota,不支持重新挂载

[root@server1 mnt]# mount | grep tmp
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=485792k,nr_inodes=121448,mode=755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=99596k,mode=700)
/dev/sdb2 on /mnt/tmp type ext4 (rw,relatime,seclabel,data=ordered)
[root@server1 mnt]# mount -o remount,usrquota,grpquota /mnt/tmp/
[root@server1 mnt]# mount | grep tmp
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=485792k,nr_inodes=121448,mode=755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=99596k,mode=700)
/dev/sdb2 on /mnt/tmp type ext4 (rw,relatime,seclabel,quota,usrquota,grpquota,data=ordered)

# 确保开机自启quota

[root@server1 mnt]# tail -n 1 /etc/mtab >> /etc/fstab

#安装quota

yum install quota -y

# cd到对应目录

#开启

quotacheck -avug
quotaon -avug

# 配置
edquota -u user1
edquota -p user1 -u user2#复制配置

avatar

#修改宽限时间
[root@server1 tmp]# edquota -t

#查看限制情况
[root@server1 tmp]# repquota -as
*** Report for user quotas on device /dev/sdb2
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
user1     --     16K    245M    293M              4     0     0
user2     --     16K      0K      0K              4     0     0




## 测试

[root@server1 tmp]# passwd user1
更改用户 user1 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@server1 tmp]# su user1
[user1@server1 tmp]$ cd
[user1@server1 user1]$ dd if=/dev/zero of=test1 bs=10M count=20
记录了20+0 的读入
记录了20+0 的写出
209715200字节(210 MB)已复制,1.43965 秒,146 MB/秒
[user1@server1 user1]$ ll
总用量 204800
-rw-r--r--. 1 user1 usergrp 209715200 1月  14 12:57 test1
[user1@server1 user1]$ ll -h
总用量 200M
-rw-r--r--. 1 user1 usergrp 200M 1月  14 12:57 test1
[user1@server1 user1]$ dd if=/dev/zero of=test2 bs=10M count=20
sdb2: warning, user block quota exceeded.
sdb2: write failed, user block limit reached.
dd: 写入"test2" 出错: 超出磁盘限额
记录了10+0 的读入
记录了9+0 的写出
97468416字节(97 MB)已复制,0.970785 秒,100 MB/秒

标签: none

评论已关闭