##存储设备的管理
来源:互联网 发布:杭州博远软件 编辑:程序博客网 时间:2024/05/18 03:16
1、设备的查看
1)发现系统的设备
fdisk -l #(使用超户查看)cat /proc/partitions
2)系统发现的但是没投入使用随时可以使
用的
blkid #查看设备的id信息
3)系统中正在使用的设备
df df -h #单位G,以2^n的方式计量 df -H #单位G,以10^n的方式计量
2、设备名词的读取
/dev/xd*x=s /dev/sd* #sata硬盘,或者iscsi网络存储 x=v /dev/vd* #虚拟硬盘,一般出现在老式虚拟机里x=h /dev/hd* #ide硬盘,一般出现在老式电脑中*=a~... /dev/vda #系统中的第一块虚拟硬盘/dev/sda1 #系统中的第一块sata硬盘的第一个分区/dev/cdrom ,/dev/sr[0-....] #系统中的光驱/dev/mapper/* #系统中的虚拟设备
3、设备的使用
设备必须要用目录来对设备中的内容进行读取,所以设备在使用时需要进行挂载动作
blkid #查看系统中可用设备
挂载:
1)
mount 可用设备 挂载点
2)
我们在命令行直接输入mount ,可以看到设备的挂载点、文件系统类型、挂载方式等信息
还可以用df查看已挂载的设备
3)
指定挂载方式:
mount -o ro /dev/vdb1 /mnt # 将/dev/vdb1以只读方式挂载(在挂载之前先卸载设备)
mount -o remount,rw /mnt | /dev/vdb1 #在挂载后无需卸载 更改挂载方式
【注意】:
我们将设备挂载后在挂载点下做的更改其实是对设备的更改
举个栗子:
我们将/dev/vdb1挂载在/mnt下,然后在mnt下建文件file
然后我们将设备卸载,查看mnt下是否有file
然后我们将/dev/vdb1挂载在其他目录下,依然可以看到我们建立的file文件
卸载:
umount 设备 | 挂载点umount /dev/vdb1 | /mnt
【注意】:
当我们在卸载时出现以下报错时
【情况1】:我们系统当前环境在挂载点中,这时我们只要退出当前环境,然后正常卸载就可以了
【情况2】:如果不在挂载点环境中,还出现如下情况
根据提示,我们可以使用lsof、fuser这两个命令
解法1:
查出占用此设备的进程的id号
lsof /dev/vdb1 fuser -vm /dev/vdb1
结束掉占用设备的进程
kill -9 id
解法2:
无需查询id,直接结束进程
fuser -km /dev/vdb1
4、分区管理
设备分区信息
1、mbr主引导记录446个字节
2、mpt主分区表64个字节
3、硬盘的有效性标识“55aa“2个字节
4、一个主分区占用16个字节记录分区信息
5、一块硬盘上如果用mbr的分区方式最多可以存在4个主分区
6、主分区
7、扩展分区
8、逻辑分区
我们知道硬盘的第一个扇区也就是第0扇区是用来存放主引导记录(MBR)的,因此也称MBR扇区。一个扇区是512字节,因此MBR的大小也是512字节,其具体数据结构:446个字节的引导代码、64个字节的分区表及2个字节的签名值”55AA”。由于MBR的分区表只有64个字节,这决定了它只能存储4个分区记录。这就是为什么一块硬盘最多只能有4个“主分区”的原因。
一个硬盘主分区至少有1个,最多4个,扩展分区可以没有,最多1个。且主分区+扩展分区总共不能超过4个。逻辑分区可以有若干个。扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分成若干逻辑分区。他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分。
5、设备划分分区:
1)
fdisk /dev/vdb
进入fdisk界面后使用m获得帮助
Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d # 删除分区 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 #新建分区 o create a new empty DOS partition table p #显示分区标信息 q #不保存退出 s create a new empty Sun disklabel t #修改分区id u change display/entry units v verify the partition table w #将当前操作写入硬盘分区标 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): 1 #选择分区idFirst sector (2048-20971519, default 2048): #分区的起始块,建议用默认Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +500M #分区的结束块,一般使用加大小的方式来指定Command (m for help): wq #保存分区策略并退出fdisk界面
这时我们使用blkid查看时,并没有发现我们新建的vdb1分区,原因是我们并没有安装文件系统,所以/dev/vdb1分区目前还是一个不能使用的分区
2)
格式化设备,在设备上安装xfs文件系统[root@server ~]# mkfs.xfs /dev/vdb1
这时我们使用blkid就可以查看到我们的/dev/vdb1设备了,也就是说我们的/dev/vdb1设备随时都可以被投入使用了
6、删除分区
先卸载再删除umount /dev/vdb1fdisk /dev/vdb
7、设备的永久挂载
vim /etc/fstab #设备挂载策略
/dev/vdb1 #设备名 /mnt #挂载点 xfs #文件系统名称 ro #挂载方式 0 #是否检测设备 0 #是否备份设备在改完配置文件后保存退出,然后重启系统
mount -a #让策略无需重启立即生效
【注意】:
此文件系统在写的在编辑时一定不能出错,若写错,则可能造成我们的系统不能重启
如图:我们将设备名错写成/dev/vd1,然后重启系统
在重启过程中会进入这样的界面
它会一直在我们的系统中检测vd1这个设备
遇到这种情况解决方法有两个
方法1:
我们只需耐心的等待系统进入这样的界面
根据上面的提示我们选择输入root用户的密码,回车后进入命令行界面,在命令行界面输编辑 /etc/fstab ,将我们的策略修改正确后保存退出
然后再次重启我们的系统,这时就可以正常启动,然后我们使用df查看挂载设备,发现我们的vdb1已经被正常自动挂载了
方法2:
如果我们不想等待,可以参考之前我们提到的重启系统时修改root用户密码的方法
1、在系统重启时使用上下键暂停此界面
选择e,按照下图所示方式修改linux16这一行,并使用Ctrl + x执行
然后执行一下命令
将我们的自动挂载策略修改正确后保存退出
然后使用两次exit退出,这时系统就能正常启动了
8、sawp分区的管理
sawp交换分区,系统自己使用,不需要挂载
1、swap分区的查看
[root@server ~]# swapon -sFilename Type Size Used Priority/dev/vdb1 partition 5119960 -1
2、swap分区的建立
1)划分分区,并修改分区为swap
在划分号分区后,使用p命令可以看到我们的分区id为83,类型为Linux的普通分区
使用t命令修改分区类型
使用l列出所有的类型的id代码,可以看到swap分区的id代码是82
修改分区类型为swap
使用p命令查看
wq保存退出
使用 fdisk -l 查看
2)格式化设备为swap文件系统格式
[root@server ~]# mkswap /dev/vdb2
【注意】:因为我之前已经将文件系统类型设置为xfs了,所以此时修改分区类型时会有一个warning
我们在作完以上工作后使用swapon -s 查看系统中的swap分区时并没有发现swap分区,那是因为我们没有激活swap设备,所以此时swap设备还是不能被系统使用的
3)激活swap分区,使系统可以使用
[root@server ~]# swapon -a /dev/vdb1
4)开机自动激活此设备
[root@server ~]# vim /etc/fstab
5)swapon -a # /etc/fstab中未生效的策略生效
3、 当我们的磁盘空间全部被占用,不能再分区时,我们可以用文件来代替分区
[root@server ~]# dd if=/dev/zero of=/swapfile bs=1M count=1000
这一步完成后,剩下的步骤和设备是一样的
[root@server ~]# mkswap /swapfile Setting up swapspace version 1, size = 1023996 KiBno label, UUID=8cabd18a-e8d8-4726-ab02-9a22f012b414
[root@server ]# swapon -a /swapfileswapon: /swapfile: insecure permissions 0644, 0600 suggested.
[root@server ~]# swapon -sFilename Type Size Used Priority/dev/vdb1 partition 511996 0 -1/swapfile file 1023996 0 -2
4、swap 分区的删除
我们在删除分区前确定将我们之前激活的设备全关掉
1)删掉我们之前在策略中编辑的内容
[root@server ~]# vim /etc/fstab
2)关掉我们激活的所有设备
[root@server ~]# swapoff /dev/vdb1[root@server ~]# swapoff /swapfile [root@server ~]#
3)删掉swap分区
[root@server ~]# fdisk /dev/vdb
4)删掉swapfile文件
[root@server ~]# rm -rf /swapfile
5)查看是否删除成功
[root@server ~]# swapon -s
【注意】:
因为接下来的实验需要,我要重新建立了/dev/vdb这个分区,新建分区文件系统格式默认与删除之前的文件系统格式一致
因为swap分区不能被挂载,所以我们先将swap分区重新格式化成xfs分区,再开始接下来的实验
9、磁盘配额
为磁盘使用用户分配额度
分区配额是针对于设备的
1、激活设备配额参数
[root@server ~]# mkdir /wtt[root@server ~]# mount -o usrquota /dev/vdb1 /wtt
2、查看配合参数是否被激活
[root@server ~]# mount | grep /dev/vdb1/dev/vdb1 on /wtt type xfs (rw,relatime,seclabel,attr2,inode64,usrquota)
3、修改挂载点权限,让student用户可以执行写的操作
[root@server ~]# chmod 777 /wtt[root@server ~]# ls -ld /wttdrwxrwxrwx. 2 root root 20 Nov 6 09:57 /wtt
4、修改student对/dev/vdb1的额度
[root@server ~]# edquota -u student /dev/vdb1 edquota: user /dev/vdb1 does not exist.
(这里限定studnet用户最大额度为200M)
从左到右依次为
Filesystem blocks #已存在文件大小soft #软额度hard #最大额度(文件大小)inodes #文件个数soft #软额度hard #最大额度(文件个数)
5、切换到student用户来检测是否限额成功
[student@server ~]$ dd if=/dev/zero of=/wtt/wtt bs=1M count=100100+0 records in100+0 records out104857600 bytes (105 MB) copied, 0.0566515 s, 1.9 GB/s[student@server ~]$ du -sh /wtt/wtt100M /wtt/wtt[student@server ~]$ dd if=/dev/zero of=/wtt/wtt bs=1M count=200200+0 records in200+0 records out209715200 bytes (210 MB) copied, 0.121462 s, 1.7 GB/s[student@server ~]$ du -sh /wtt/wtt200M /wtt/wtt[student@server ~]$ dd if=/dev/zero of=/wtt/wtt bs=1M count=201dd: error writing ‘/wtt/wtt’: Disk quota exceeded #提示超过配额限制201+0 records in200+0 records out209715200 bytes (210 MB) copied, 0.283925 s, 739 MB/s[student@server ~]$ du -sh /wtt/wtt200M /wtt/wtt
6、开机自动激活配额
[root@server ~]# vim /etc/fstab
重启系统,检测配额是否仍然是被激活状态
[root@server ~]# rebootConnection to 172.25.254.244 closed by remote host.Connection to 172.25.254.244 closed.[kiosk@foundation44 Desktop]$ ssh root@172.25.254.244root@172.25.254.244's password: Last login: Mon Nov 6 22:32:05 2017##################OSlevel: rhe17.0DISC: MYSQLSERVER FOR ZHIFUBAO#################[student@server ~]$ dd if=/dev/zero of=/wtt/wtt bs=1M count=200200+0 records in200+0 records out209715200 bytes (210 MB) copied, 0.436391 s, 481 MB/s[student@server ~]$ dd if=/dev/zero of=/wtt/wtt bs=1M count=202dd: error writing ‘/wtt/wtt’: Disk quota exceeded #这里会有报错201+0 records in200+0 records out209715200 bytes (210 MB) copied, 2.51461 s, 83.4 MB/s
10、分区方式的修改
( mbr <—–>gpt)
1、mbr ———-> gpt
1)查看当前分区方式
[root@server ~]# fdisk -lDisk label type: dos #mbr分区方式
2)将mbr的分区方式修改成gpt的
(parted) mklabel #修改设备分区方式标签
双击tabel键列出所有分区方式
将原来的dos标签改称gpt格式
3)查看我们是否修改成功
[root@server ~]# fdisk -lDisk label type: gpt #当前分区方式为gpt
2、gpt ———>mbr的操作与上述过程类似
[root@server ~]# parted /dev/vdb(parted) mklabelNew disk label type? msdosWarning: The existing disk label on/dev/vdb will be destroyedand all data on this disk will be lost. Do you want to continue?Yes/No? yes(parted) quit Information: You may need to update /etc/fstab.
3、【注意】:
更改分区方式会损坏我们设备上数据,建议先有需要的情况下先备份数据
[root@server ~]# parted /dev/vdbNew disk label type? gptWarning: The existing disk label on/dev/vdb will be destroyed and all data on thisdisk will be lost. Do you want to continue?Yes/No?
11、分区加密
建立分区加密
1、建立分区【注意】因为我之前的实验都是用/dev/vdb1这个分区做的,在做磁盘分区方式转换时(gpt<->mbr)vdb1分区已经被删掉了,然后在做此次实验之前我新建了/dev/vdb1分区,然后去加密,发现报了一下错误
原因很简单,我们之前提到过,在我们将/dev/vdb1删掉后重建/dev/vdb1分区时,新分区的文件系统格式与之前一样
也就是说我们对分区加密前以经格式化好了文件系统,所以自然就加密不成功了
2、分区加密[root@server ~]# cryptsetup luksFormat /dev/vdb2
3、映射分区[root@server ~]# cryptsetup open /dev/vdb3 wtt Enter passphrase for /dev/vdb3:
4、格式化文件系统[root@server ~]# mkfs.xfs /dev/mapper/westos
5、挂载 [root@server ~]# mount /dev/mapper/westos /mnt #用映射文件挂载分区[root@server ~]# touch /mnt/file{1..5}[root@server ~]# ls /mntfile1 file2 file3 file4 file5[root@server ~]# umount /mnt[root@server ~]# mount /dev/vdb3 /mnt #此时不能用分区挂载mount: unknown filesystem type 'crypto_LUKS'
6、关闭映射(先卸载再关闭)[root@server ~]# umount /mnt[root@server ~]# cryptsetup close westos[root@server ~]# ls /mntmntfile pts test
7、关闭映射后不能挂载[root@server ~]# mount /dev/mapper/westos /mntmount: special device /dev/mapper/westos does not exist[root@server ~]# mount /dev/vdb3 /mntmount: unknown filesystem type 'crypto_LUKS'
8、重新映射分区后就可以挂载了[root@server ~]# cryptsetup open /dev/vdb3 wttEnter passphrase for /dev/vdb3: [root@server ~]# mount /dev/mapper/wtt /mnt
- 存储设备的管理
- ##存储设备的管理
- 存储设备的管理
- 存储设备的管理
- 存储设备的管理
- Linux存储设备的管理
- 关于存储设备的管理
- Linux system 存储设备的管理
- linux系统之存储设备的管理
- linux中的存储设备的管理
- linux初学之存储设备的管理
- LInux中存储设备的管理
- Linux存储设备的管理与分区
- Linux-存储设备及其分区的管理
- linux——存储设备的管理
- linux系统基本操作——存储设备的管理
- Blog16@linux存储设备的管理(1)—挂载
- Blog16@linux存储设备的管理(2)—分区
- 经典排序方法详解
- Phabricator基于docker的搭建方法
- ubuntn的安装
- C++ primer 薄片系列之重载运算符
- 第六章第一题
- ##存储设备的管理
- window安装git图文详解—GIT入门篇
- 将leveldb库加入自己的工程目录
- 学习感悟
- 208. Implement Trie (Prefix Tree)
- 利用SolrJ操作solr API
- BZOJ4300 绝世好题 【动态规划】
- 利用SolrJ操作solr API
- 好题收集(2)