对设备进行管理
1.硬件设备
/dev/sdb1
/dev | device |
s | sata-串口硬盘 ,有一排金手指,传输数据快 |
pata | 并口硬盘,有一排插针,不需要安装驱动 |
d | disk |
a | one |
2.本地存储设备的识别
fdisk -l | 真实存在的设备 |
cat /proc/partitions | 系统识别的设备 |
blkid | 系统可使用的设备 |
df | 系统正在挂载的设备 |
没插入U盘:
插入U盘:
3.设备的挂载和卸载
设备名称
/dev/xdx | /dev/hd0 /dev/hd1 /dev/sda /dev/sdb /dev/sda1 /dev/sda2 /dev/sdb |
/dev/sr0 | 光驱 |
/dev/mapper/* | 虚拟设备 |
设备挂载
mount /dev/sdc1 /mnt ##挂载sdc1到mnt
umount /mnt | /dev/sdc1 ##卸载
mount -o ro /dev/sdc1 /mnt ##只读挂载
mount ##查看挂载信息
mount -o remount,rw /dev/sdc1 | /mnt ##重新读写挂载
3.解决设备正在忙情况
umount /dev/sdc1
umount: /mnt: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
解决方法一:
先用fuser查询所占用文件系统的进程;
再从目录卸载。
fuser -kvm /dev/sdc1
USER PID ACCESS COMMAND
/dev/sdc1: root kernel mount /mnt
kiosk 2929 ..c.. bash
root 2998 ..c.. bash
umount /dev/sdc1
解决方法二:
lsof /dev/sdc1 ##列出打开了制定目录文件的进程
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 3310 root cwd DIR 8,33 16384 1 /mnt
kill -9 3310 ##杀掉pid为3310用户运行的所有进程
umount /dev/sdc1 ##卸载该目录
磁盘划分区
1.磁盘知识点:
磁盘有一个到数个盘片,每个盘片对应一个读写磁头,盘片上有读写磁头、扇区、磁道、主轴。
最外圈为0磁道,磁盘数据存放就是从最外圈0磁道开始的。径向运动磁道检测器构件能够完成磁头对0磁道的定位系统的引导程序在0柱面0磁道1扇区的前446bytes。
磁盘的扇区:操作系统是以扇区为单位将信息储存在i磁盘上,一般每个扇区的大小是512个字节。不同盘面的磁盘被划分为多个扇区。
512=446+64+2
446 | mbr ,主引导记录硬盘分区标 |
64 | mpt,主分区标 |
2 | 55aa,硬盘的有效性标实 |
一个分区占用16个字节,一块硬盘上最多可以划分4个主分区。
分区可以分为:主分区,扩展分区,逻辑分区。
扩展分区的作用,由于mbr仅能保存4个分区的数据信息,如果超过4个,系统允许额外的硬盘空间存放另外一份磁盘分区信息,这就是扩展分区。将硬盘分为3P(主分区)和E(扩展分区),扩展分区是不能直接使用,需要将扩展分区分为逻辑分区才能使用,因此,达到了使用5个以上的分区。
fdisk /dev/vdb ##打开交互式界面建立分区
m | 查看帮助 |
p | 显示分区信息 |
n | 创建新分区——P:主分区、E:扩展分区 |
d | 删除一个分区 |
t | 修改分区id |
q | 不保存退出 |
w | 保存退出 |
2.分区步骤:
fdisk -l ##列出当前系统中所与磁盘以及磁盘分区
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 0x294bfe24.
(建立分区)
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): 1 ##id
First sector (2048-20971519, default 2048): ##分区起始
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M ##分区大小
Partition 1 of type Linux and of size 100 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: 0x45b18170
Device Boot Start End Blocks Id System
/dev/vdb1 2048 206847 102400 83 Linux
Command (m for help): wq ##保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
partprobe ##同步分区表
cat /proc/partitions
major minor #blocks name
253 0 10485760 vda
253 1 10484142 vda1
253 16 10485760 vdb
253 17 102400 vdb1
当已经划分了3个分区:
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.
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): ##3个主分区出现时要先划分扩展分区
Using default response e
Selected partition 4
First sector (616448-20971519, default 616448):
Using default value 616448
Last sector, +sectors or +size{K,M,G} (616448-20971519, default 20971519):
Using default value 20971519
Partition 4 of type Extended and of size 9.7 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: 0x294bfe24
Device Boot Start End Blocks Id System
/dev/vdb1 2048 206847 102400 83 Linux
/dev/vdb2 206848 411647 102400 83 Linux
/dev/vdb3 411648 616447 102400 83 Linux
/dev/vdb4 616448 20971519 10177536 5 Extended ##把所有空间都给E
Command (m for help): wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
给设备安装文件系统
mkfs.xfs /dev/vdb1 ##格式化1主分区
mount /dev/vdb1 /mnt/ ##挂载到/mnt/
vim /etc/fstab ##设置永久挂载,挂载策略文件/etc/fstab
设备 挂载点 文件系统 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs defaults 0 0
mount -a ##激活设备
blkid ##查看可用设备,可以看到被格式化好的/dev/vdb1
删除分区:
umount /dev/vdb1 ##卸载
fdisk /dev/vdb
删除分区设备之前,先卸载分区
swap分区管理
1.swap分区的建立:
mkswap /dev/vdb5 ##格式化5分区
swapon -a /dev/vdb5 ##激活5分区
swapon -s ##swap分区的查看
vim /etc/fstab ##永久挂载策略文件
/dev/vdb5 swap swap defaults 0 0
2.swap分区的删除:
vim /etc/fstab
删除脚本
swapon /dev/vdb5
swapon -s
swapoff /dev/vdb5
3.没有磁盘分区,应急扩建swap分区:
dd if=/dev/zero of=/swapfile bs=1M count=500 ##从/dev/zero分割出来给/swapfile,一次分割1M,分割500次
du -sh /swapfile ##查看大小
mkswap /swapfile ##格式化swap分区
swapon -a /swapfile ##激活swap分区
swapon -s ##查看
swapoff /swapfile ##关闭swap分区
rm -fr /swapfile ##删除swap分区
磁盘配额
磁盘配额是限制普通用户在分区上使用磁盘空间和文件个数。
hard:磁盘空间大小
mkfs.xfs /dev/vdb6 ##格式化6分区
mount -o usrquota /dev/vdb6 /mnt/ ##将/dev/cdb6挂载到/mnt/下,并开启用户配额功能
chmod 777 /mnt/ ##给/mnt/加可读可写可执行权限
edquota -u student ##针对用户student分配磁盘配额
Filesystem blocks soft hard inodes soft hard
/dev/vdb6 10240 0 10240 1 0 0
编辑/etc/fstab文件,实现自动挂载:
vim /etc/fstab
/dev/vdb6 /mnt/ xfs defaults,usrquota 0 0
测试:
su - student
dd if=/dev/zero of=/mnt/file bs=1M count=3 ##建立file文件,从/dev/zero分割出来给/mnt/file,指定大小为3M
3+0 records in
3+0 records out
3145728 bytes (3.1 MB) copied, 0.0022047 s, 1.4 GB/s
dd if=/dev/zero of=/mnt/file bs=1M count=11 ##建立file文件,从/dev/zero分割出来给/mnt/file,指定大小为11M
dd: error writing ‘/mnt/file’: Disk quota exceeded
11+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.00738378 s, 1.4 GB/s
lucks加密
优点:保护文件不被别人看到
缺点:增加cpu的负载、影响cpu的性能
1.划分磁盘分区
fdisk /dev/vdb ##打开交互式界面,建立分区
partprobe ##同步分区列表
cat /proc/partitions ##查看是否建立成功
2.给磁盘加密
cryptsetup luksFormat /dev/vdb7
(同意用大写YES)
3.格式化分区
mkfs.xfg /dev/vdb7
4.打开
cryptsetup open /dev/vdb7 yee ##磁盘解密生成一个自己命名的虚拟磁盘yee
ll /dev/mapper ##查看该文件存放系统的虚拟设备
5.挂载虚拟磁盘
mount /dev/mapper/yee /mnt/
6.建立文件,此时建立的文件被加密,别人访问不到
touch /mnt/file{1..10} ##可以使用此设备新建文件
7.卸载
umount /mnt/
8.关闭文档
cryptsetup close yee
上锁完成后,下次解密与本次无关,虚拟磁盘名称可以随意变化。
9.如果需要再次查看被加密的文件,需要打开文件,挂载文件,看完后直接卸载就可以了。
cryptsetup open /dev/vdb7 yee
mount /dev/mapper/yee /mnt/
umount /mnt/
加密磁盘开机自动挂载
df ##查看是否挂载,若挂载需要卸载
vim /etc/fstab ##实现自动挂载
/dev/mapper/yee /media xfs defaults 0 0
vim /etc/crypttab ##查看虚拟磁盘需要访问/root/diskpass这个文件索取密码
yee /dev/vdb7 /root/diskpass
vim /root/diskpass ##写入密码
yiyangqianxi
cryptsetup luksAddKey /dev/vdb7 /root/diskpass ##建立设备与密码之间的联系
测试:
重启之后查看挂载,发现自动挂载
reboot
[root@node1 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3160616 7313284 31% /
devtmpfs 469332 0 469332 0% /dev
tmpfs 484920 80 484840 1% /dev/shm
tmpfs 484920 12800 472120 3% /run
tmpfs 484920 0 484920 0% /sys/fs/cgroup
/dev/vdb1 98988 5280 93708 6% /mnt
/dev/mapper/yee 96940 5180 91760 6% /media
取消加密磁盘开机自动挂载:
删除/etc/fstab /etc/crypttab /root/diskpass相关数据
1.卸载:
[root@node1 ~]# umount /mnt/
[root@node1 ~]# umount /media/
2.关闭虚拟设备
cryptsetup close yee
3.强制格式化设备
mkfs.xfs /dev/vdb7 -f
修改系统磁盘类型
fdisk -l ##显示真实存在的设备
parted /dev/vdb ##进入交互界面,修改磁盘类型
GNU Parted 3.1
Using /dev/vdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel
New disk label type?
New disk label type? gpt
(parted) quit
Information: You may need to update /etc/fstab.
脚本自动建立swap分区
vim /mnt/create_swap.sh
#!/bin/bash
fdisk /dev/vdb <<EOF
n
p
1
+1G
t
82
wq
EOF
mkswap /dev/vdb1
echo"/dev/vdb1 swap swap default 0 0" >> /etc/fstab
swapon -a
sh /mnt/create_swap.sh