linux系统中的磁盘管理
1.本地设备的识别
fdisk -l ##查看真实存在的设备
cat /proc/partitions ##查看系统能识别的设备
blkid ##系统可使用的设备
df ##系统正在挂载的设备
2.设备的挂载和卸载
(1)设备名称
/dev/xdx ##dev/hd0 dev/hd1 dev/sda dev/sdb dev/sda1 /dev/sda2
/dev/sr0 ##光驱
/dev.mapper/* ##虚拟设备
(2)设备的挂载
mkfs.xfs 设备名 ##挂载格式化
mount 设备 挂载点
mount /dev/sdb1 /mnt ##挂载sdb1到mnt
umount /mnt | dev/sdb1 ##卸载sdb1或mnt,都可起到卸载u盘的作用
mount -o ro /deb/sdb1 /mnt ##只读挂载
mount ##查看挂载信息
mount -o remount,rw dev/sdb1 | /mnt ##重新读写挂载
有时如果无法挂载,先将设备格式化后再操作
卸载
只读挂载
通过查看挂载信息可知道为只读挂载
(3)解决卸载时设备正忙情况
问题:
[root@foundation26 ~]# umount /mnt
umount: /mnt: target is busy. ##设备再被使用
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
解决方法1
fuser -kvm /mnt ##先停掉在使用设备的服务
umount /mnt ##这时便可以卸载
解决方法2
lsof /mnt ##查询在使用设备的服务
[root@server ~]# lsof /mnt
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 10479 root cwd DIR 253,16 6 128 /mnt
kill -9 10479 ##关闭在使用设备的服务
umount /mnt ##卸载
3.磁盘分区
mpt分区表 64字节 记录分区信息
mbr 446字节 引导磁头的读取方向
硬盘的有效性标示符 2字节 55aa
(1)磁盘0磁道1扇区的512字节中的记录信息如下
512=446 +64 +2
^ ^ ^
mbr(主引导记录) mpt(主分区表) 55aa(硬盘的有效性标识)
硬盘分区表共有64字节
通常1个分区占用16个字节
所以一块硬盘上最多可以划分4个主分区
主分区(根据分区表划分的分区)
扩展分区(划分了的主分区)
逻辑分区(划分后的分区)
(2)分区步骤(在虚拟机server端运行)
1.fdisk -l ##查看硬件信息
2.fdisk /dev/vdb
m
1.查看命令信息
[root@server ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x297e3ba6.
Command (m for help): m ##按m
Command action
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 ##修改分区id
u change display/entry units
v verify the partition table
w write table to disk and exit ##保存分区标时信息到硬盘
x extra functionality (experts only)
建立主分区
Command (m for help): n ##新建
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p ##新建的分区为主分区
Partition number (1-4, default 1): ##id用默认
First sector (2048-20971519, default 2048): ##分区起始位置 ,通常使用默认起始位置(节省资源)
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +500M ##分区大小
Partition 1 of type Linux and of size 500 MiB is set
Command (m for help): p ##显示分区信息
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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
Disk label type: dos
Disk identifier: 0x297e3ba6
Device Boot Start End Blocks Id System
/dev/vdb1 2048 1026047 512000 83 Linux
##当系统中已经新建了三个分区时(将上面的步骤执行三次)
Command (m for help): n ##选择新建分区
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e ##因为已经出现三个分区。所以要先扩展分区
Selected partition 4
First sector (4098048-20971519, default 4098048):
Using default value 4098048
Last sector, +sectors or +size{K,M,G} (4098048-20971519, default 20971519):
Using default value 20971519
Partition 4 of type Extended and of size 8 GiB is set
Command (m for help): p ##显示分区信息
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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
Disk label type: dos
Disk identifier: 0x297e3ba6
Device Boot Start End Blocks Id System
/dev/vdb1 2048 1026047 512000 83 Linux
/dev/vdb2 1026048 2050047 512000 83 Linux
/dev/vdb3 2050048 4098047 1024000 83 Linux
/dev/vdb4 4098048 20971519 8436736 5 Extended##把所有空间都给E
Command (m for help): wq
如果需要对扩展分区进行划分则
先fdisk /dev/vdb 再Command (m for help): n
或者直接 Command (m for help): n
这时划分时
Command (m for help): n
All primary partitions are in use ##这时不会提示选择分区类型
Adding logical partition 5
First sector (4100096-20971519, default 4100096):
Using default value 4100096
Value out of range.
Last sector, +sectors or +size{K,M,G} (4100096-20971519, default 20971519): +500M
Partition 5 of type Linux and of size 500 MiB is set
Command (m for help): p
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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
Disk label type: dos
Disk identifier: 0x297e3ba6
Device Boot Start End Blocks Id System
/dev/vdb1 2048 1026047 512000 83 Linux
/dev/vdb2 1026048 2050047 512000 83 Linux
/dev/vdb3 2050048 4098047 1024000 83 Linux
/dev/vdb4 4098048 20971519 8436736 5 Extended
/dev/vdb5 4100096 5124095 512000 83 Linux
4.给设备安装文件系统
ext3 rhel5及以前的版本 最多支持32TB的文件系统和2t文件,实际2tb文件系统,16G文件
ext4 rhel6 最多支持1EB文件系统和16TB文件
xfs rhel17 最多支持18EB和9EB文件
普通挂载
blkid ##查看可用设备
mkfs.xfs /dev/vdb1 ##初始化vdb1设备
mount /dev/vdb1 /mnt ##挂载
自动挂载
vim /etc/fstab
设备 挂载点 文件系统 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs defaults 0 0
mkfs.xfs /dev/vdb1 ##初始化vdb1设备
mount -a ##自动挂载
df ##查看是否挂载成功
5.swap分区管理
(1)swap分区建立
fdisk /dev/vdb ##划分swap空间
划分分区并设定分区标签为82
partprobe ##重新加载
mkswap /dev/vdb5 ##格式化为swap格式
swapon -a /dev/vdb5 ##激活swap分区
swapon -s ##查看swap分区
vim /etc/fstab ##使swap分区开机时仍然生效,消去临时性
内容: /dev/vdb5 swap swap defaults 0 0
(2)swap分区删除
a. vim /etc/fstab ##修改开机文件
b. swapoff /dev/vdb5 ##删除swap设备
swapon -s ##查看是否删除
c. fdisk /dev/vdb ##删除swap对应分区
d
5
6.配额
配额是针对设备分区的
du -sh 文件名 ##查看文件的大小
先挂载再更改权限
挂载时激活用户配额
blocks的大小由系统统计
inodes 用户再设备行的文件个数
(1)建立一个新公共目录/pub/
(2)新建一个内存为50M的设备
(3)将dev/vdb6(50M)这个设备挂载到新建/pub目录上
(4)更改目录的权限
(5)切换到普通用户,到/pub/目录下,再/pub/中划分空间,可以任意划分空间(但不能多于设备的大小)
dd if=/dev/zero of=/pub/studentfile bs=1M count=20 (coute欲为划分的空间)
(6)切换到超级用户,删除刚刚的文件,查看挂载状态,没有用户配额
(7)先卸载/pub/加入用户配额再次挂载
mount -o usrquota /dev/vdb6 /pub
(8)设定用户可用额度(配额)
edquota -u student /dev/vdb6
(9)切换到student用户,用于配额给每个用户只分配了20M(vdb5的空间为100M)占用20M空间可以成功,21M出现报错,
7.磁盘加密
(1)加密流程
cryptsetup luksFormat /dev/vdb1 ##设备加密
输入大写的YES 密码应该有英文和数字
cryptsetup open /dev/vdb1 westos ##将加密设备更改成一个可以挂载(可做修改)形态,
westos的默认路径为(/dev/mapper/westos)
加密的设备不可直接挂载
mkfs.xfs /dev/mapper/westos ##初始化更改的可修改文件
mount /dev/mapper/westos /mnt ##挂载加密磁盘的可修改文件
vim /mnt/file ##新建一个文件并编辑内容
cat /mnt/file ##这时可以看到文件内容
umount /mnt/ ##卸载
cat /mnt/file ##这时文件不存在了就无法查看文件内容了
cryptsetup close westos ##恢复形态
cryptsetup open /dev/vdb1 westos ##转换形态
mount /dev/mapper/westos /mnt/ ##挂载
cat /mnt/file ##更改形态之后又可以查看到文件内容
(2)加密磁盘开机自动挂载
vim /etc/fstab ##设置开机自启动文件
内容:/dev/mapper/westos /mnt xfs defaults 0 0
vim /etc/crypttab ##设置加密文件的挂载形态,以及密码
内容:westos /dev/vdb1 /etc/westoskey
vim /etc/westoskey ##设置挂载加密密码(如果不设置密码,会导致开机不稳定)
内容:westos19
cryptsetup luksAddKey /dev/vdb2 /etc/westoskey##设置挂载设置密码时自动读取/root/westoskey文件的内容
(3)删除磁盘加密
umount /mnt ##卸载
vim /etc/fstab ##修改开机启动的文件
vim /etc/crypttab
vim /etc/westoskey
cryptsetup close westos ##恢复形态
mkfs.xfs /dev/vdb1 -f ##初始化为xfs格式