(一)linux存储设备的管理(storage manager)
学习目标
添加文件系统空间
添加 swap 交换分区
磁盘配额
对系统分区加密
1存储设备的查看
1) 发现系统中的设备
fdisk -l
cat /proc/partitions
2) 列出系统中可以使用的设备 id
blikid
3 )发现并且在使用的设备
df -h ##此方式更精确
df -H
区别:-h统计方式为1G=2的n次方,-H为1G=10的n次方!
2 设备名称的读取
/dev/xd*
(一)linux存储设备的管理(storage manager)
1存储设备的查看
1) 发现系统中的设备
fdisk -l
cat /proc/partitions
2) 列出系统中可以使用的设备 id
blikid
3 )发现并且在使用的设备
df -h ##此方式更精确
df -H
区别:-h统计方式为1G=2的n次方,-H为1G=10的n次方!
2 设备名称的读取
/dev/xd*
x=s /dev/sd* ##sata硬盘,或者iscsi网络存储
x=v /dev/vd* ##虚拟硬盘,一般出现在虚拟机中
x=h /dev/hd ##ide硬盘,老式电脑中
*=a~ ##3/dev/vda,系统中第一块虚拟硬盘
/dev/sda1 ##系统中第一块sata硬盘的第一个分区
/dev/cdrom,/dev/sr[0-…] ##系统中光驱
设备必须要用目录来对设备中的内容进行读取
所以设备在使用时需要做挂载动作
实验一:
blikid 识别可用设备
mount 设备 挂载点
mount /dev/sdb1 /mnt ##把系统中第二块硬盘的第一个分区挂载到mnt下
mount -o ro /dev/sdb1 /mnt/ ###只读挂载
mount -o remount,rw /mnt|/dev/sdb1 ##热更改。在设备使用时更改挂载参数为rw
注意:remount可以不用卸载之后重新挂载
```
umount ##设备或挂载点
umount /dev/sdb1|/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)[root@foundation79 mnt]# fuser -vm /dev/sdb1
USER PID ACCESS COMMAND
/dev/sdb1: root kernel mount /mnt
root 4129 ..c.. bash
2)[root@foundation79 mnt]# lsof /dev/sdb1
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 4129 root cwd DIR 8,17 4096 1 /mnt
lsof 7221 root cwd DIR 8,17 4096 1 /mnt
lsof 7222 root cwd DIR 8,17 4096 1 /mnt
进程终止方式:
1)[root@foundation79 mnt]# kill -9 4129
Killed
2)[root@foundation79 Desktop]# fuser -kvm /dev/sdb1
4分区管理
1)设备分区信息
1 mbr主引导记录446个字节(mbr分区方式最多支持2TB分区,超过2TB不支持。)
2 mpt分区表64个字节
3 硬盘有效性标识“55aa“两个字节
4一个主分区占用16个字节记录分区信息
5 一块硬盘若用mbr分区方式最多可存在4个主分区
6 主分区
7 扩展分区
8 逻辑分区
2)分区划分
Welcome to fdisk (util-linux 2.23.2).
Command (m for help): 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 ##将当前操作写入硬盘分区表
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +200M
Partition 1 of type Linux and of size 200 MiB is set
Command (m for help): wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
查看分区信息(设备是否被系统识别):vdb1为刚新建分区!
[root@ssh-server ~]# cat /proc/partitions
major minor #blocks name
253 0 10485760 vda
253 1 10484142 vda1
253 16 10485760 vdb
253 17 204800 vdb1
我们来挂载,会发现问题:
[root@ssh-server ~]# mount /dev/vdb1 /mnt/
mount: /dev/vdb1 is write-protected, mounting read-only
mount: unknown filesystem type '(null)'
##因为没有文件系统!
解决:
[root@ssh-server ~]# mkfs.xfs /dev/vdb1
meta-data=/dev/vdb1 isize=256 agcount=4, agsize=12800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=51200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
##查看可用设备,可以看到被格式化好的/dev/vdb1
[root@ssh-server ~]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
/dev/vdb1: UUID="d7f74d8e-45d3-45ab-a2e4-652d7cbc822e" TYPE="xfs"
[root@ssh-server ~]# mount /dev/vdb1 /mnt/
##此时挂载成功!
2)设备永久挂载:
[root@ssh-server ~]# vim /etc/fstab
/dev/vdb1 /westos xfs defaults 0 0
###查看效果:
[root@ssh-server ~]# logout
Connection to 172.25.254.236 closed.
[root@foundation79 mnt]# ssh root@172.25.254.236 -X
root@172.25.254.236's password:
Last login: Sat Nov 4 09:18:53 2017 from 172.25.254.79
[root@ssh-server ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3245020 7228880 31% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17032 925628 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
/dev/vdb1 201388 10400 190988 6% /mnt
此时,mount -a ##将/etc/fstab中定义的所有档案系统挂上
[root@ssh-server ~]# df
/dev/vdb1 98988 5280 93708 6% /westos
###开机挂载成功!
3)删除分区Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +200M
Partition 1 of type Linux and of size 200 MiB is set
Command (m for help): wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
查看分区信息(设备是否被系统识别):vdb1为刚新建分区!
[root@ssh-server ~]# cat /proc/partitions
major minor #blocks name
253 0 10485760 vda
253 1 10484142 vda1
253 16 10485760 vdb
253 17 204800 vdb1
我们来挂载,会发现问题:
[root@ssh-server ~]# mount /dev/vdb1 /mnt/
mount: /dev/vdb1 is write-protected, mounting read-only
mount: unknown filesystem type '(null)'
##因为没有文件系统!
解决:
[root@ssh-server ~]# mkfs.xfs /dev/vdb1
meta-data=/dev/vdb1 isize=256 agcount=4, agsize=12800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=51200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
##查看可用设备,可以看到被格式化好的/dev/vdb1
[root@ssh-server ~]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
/dev/vdb1: UUID="d7f74d8e-45d3-45ab-a2e4-652d7cbc822e" TYPE="xfs"
[root@ssh-server ~]# mount /dev/vdb1 /mnt/
##此时挂载成功!
2)设备永久挂载:
[root@ssh-server ~]# vim /etc/fstab
/dev/vdb1 /westos xfs defaults 0 0
###查看效果:
[root@ssh-server ~]# logout
Connection to 172.25.254.236 closed.
[root@foundation79 mnt]# ssh root@172.25.254.236 -X
root@172.25.254.236's password:
Last login: Sat Nov 4 09:18:53 2017 from 172.25.254.79
[root@ssh-server ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3245020 7228880 31% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17032 925628 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
/dev/vdb1 201388 10400 190988 6% /mnt
此时,mount -a ##将/etc/fstab中定义的所有档案系统挂上
[root@ssh-server ~]# df
/dev/vdb1 98988 5280 93708 6% /westos
##开机挂载成功!
3)分区的删除
1 查看分区
2 删除分区
3查看,删除成功!
5 swap分区
定义:交换空间或交换区是磁盘驱动器上的空间 , 用作当前未使用部分
内存的溢出。这样 , 系统就能在主内存中留出空间用于储存当
前正在处理的数据 , 并在系统面临主内存空间不足的风险时提
供应急溢出。
1)swap分区的查看
2)swap分区的建立
1 默认分区为linux的普通分区:
2划分分区,并修改分区id为swap:
3 格式化设备为swap文件系统格式:
4 激活此设备,使系统利用此设备:
5让此设备开机自启:
3)当磁盘空间已满时,不能创建新分区时,我们可以用文件来代替分区:
查看:
编辑配置文件:
激活新交换区,查看:
注意;这里文件创建完成后,步骤与设备的步骤一致了。
4)swap分区的删除:
6 磁盘配额
为磁盘使用用户分配额度,磁盘配额是正针对于设备的,
1激活设备配额参数:
student用户磁盘空间不足:
为student用户磁盘配额,此处要更改/westos权限:
设置开机激活配额:
7 分区方式修改:
gpt分区方式:GUID 磁碟分割表( GUID Partition Table ,缩写:
GPT )其含义为“全局唯一标识磁盘分区表”
与 MBR 最大 4 个分区表项的限制相比, GPT 对分区数量没有
限制.而且gpt分区也使用于企业。
Windows 最大仅支持 128 个 GPT 分区
GPT 可管理硬盘大小达到了 18EB
ext3 最多支持 32tb
ext4 最多支持 1EB
xfs 8EB-1byte
mbr——-gpt分区方式
查看现有分区方式:
dos表示mbr分区方式,现在修改设备分区记录方式:
改完查看。把原有dos标签改为gpt格式,修改完毕:
7 磁盘分区加密;
1 建立一个新的分区:
2 加密:
3将磁盘以映射的方式打开,并给映射文件格式化:
4 挂载
5 新建文件,查看:
6 此时卸载,并关闭映射。这时会发现因为LUKS加密磁盘,所以磁盘无法挂载,而且以前的映射文件也找不到:
8 加密设备开机自动挂载:
更改配置文件:
重启之后察看是否成功:
9加密的清除;