我们的存储设备有哪些呢?u盘,光盘,硬盘,磁盘,软盘这些都是本地存储设备,还有网络存储设备,这些设备使用之前都要格式化。对于硬盘,如果只有一个分区,数据丢了,有可能会因为影响整个设备,所以需要对硬盘进行分区,让系统识别投入使用。
##一、设备的查看##
1.发现系统中的设备
fdisk -l ##查看硬盘信息,硬盘是从哪个磁道到哪个磁道被分成了一个区
[root@localhost ~]# fdisk -l
硬盘分为/dev/vda ,/dev/vdb
cat /proc/partitions 查看分区信息,分区大小,挂载点,剩余空间,设备信息
[root@localhost ~]# cat /proc/partitions
2.系统发现的,但没有投入使用,随时可以使用设备
blkid ##查看设备id信息
[root@localhost ~]# blkid
3.发现并且在使用的设备
df -h 1G=2的N次方(更精确,内存记录大小为k)
[root@localhost ~]# df -h
size统计大小是2的n次方
df -H =10的n次方(G)
[root@localhost ~]# df -H
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 11G 3.2G 7.6G 30% /
devtmpfs 493M 0 493M 0% /dev
tmpfs 509M 87k 509M 1% /dev/shm
tmpfs 509M 14M 496M 3% /run
tmpfs 509M 0 509M 0% /sys/fs/cgroup
size大小统计是10的n次方
##二、设备名称的读取##
/dev/xd* 设备的名字
x=s /dev/sd* ##sata硬盘,或iscsi网络
x=v /dev/vd* ##虚拟硬盘,一般出现在虚拟机里
x=h /dev/hd ##ide硬盘,一般出现在老式电脑中
*=a~... ##/dev/vda,系统中第一块虚拟硬盘
/dev/cdrom,/dev/sr[0-...]##系统中的光驱
/dev/mapper/* ##系统中的虚拟设备
/dev/sda1 #系统中第一块sata硬盘的第一个分区
如下系统中的第一块sata硬盘的第一到十分区
##三、设备的使用##
设备必须要用目录来对设备中的内容进行读取
所以设备在使用时需要做挂载动作
blkid 识别可用设备
[root@foundation60 ~]# blkid
mount 设备 挂载点 ##设备的挂载
把系统中的第二块sata硬盘的第一个分区挂载到/mnt下
mount /dev/sdb1 /mnt/
挂载后/mnt是一个只读系统
##只读挂载第二块硬盘的第一个分区,挂载到mnt下
mount -o ro /dev/sdb1 /mnt/
[root@foundation60 ~]# mount -o ro /dev/sdb1 /mnt/
[root@foundation60 ~]# ls /mnt
##在设备被使用时,更改设备的挂载参数为rw
mount -o remount,rw /mnt|/dev/sdb1
[root@foundation60 ~]# mount -o remount,rw /mnt/
[root@foundation60 ~]# touch /mnt/qq
[root@foundation60 ~]# ls -l /mnt/
total 208
umount 设备|挂载点 ##设备的挂载点
umount /dev/sdb1 | /mnt
[root@foundation60 ~]# umount /dev/sdb1
当/mnt/有进程时
把/dev/sdb1挂载到/mnt/下
注意:当卸载时出现以下情况
[root@foundation60 ~]# 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))
表示设备正在被某个程序使用,解决方法如下:
#####进程发现的方式#######
fuser -vm /dev/sdb1
lsof /dev/sdb1
#####进程终止的方式#######
kill -9 pid
fuser -kvm /dev/sdb1
fuser -vm /dev/sdb1
[root@foundation60 ~]# fuser -vm /dev/sdb1
显示设备被vim占用
lsof /dev/sdb1
[root@foundation60 ~]# lsof /dev/sdb1
fuser -kvm /dev/sdb1
[root@foundation60 ~]# fuser -kvm /dev/sdb1
列出目录所有内容,包括. .. 的隐藏文件
由于异常退出生成了.sw*文件
[root@foundation60 mnt]# rm -fr ./file.sw*
终止掉进程就能卸载了
##四、分区管理##
#设备分区信息#
1.mbr主引导记录446个字节
2.mpt主分区表64个字节
3.硬盘的有效标实“55aa”2个字节
4.一个主分区占用16个字节记录分区信息
5.一块硬盘上如果用mbr的分区方式最多可以存在4个主分区
6.主分区:位于硬盘的最前面一块区域中,构成逻辑c磁盘。其中的主引导程序是他的一部分,此段程序主要用于检测硬盘分区的正确性,并确定活动分区,负责把引导权移交给活动分区的dos或其他操作系统。此段程序损坏将无法从硬盘引导,但从软驱或光驱引导之后可对硬盘进行读写。
7.扩展分区:分出主分区后,其余的部分可以分成扩展分区,一般剩下的部分全部分成扩展分区,也可以不全分,那剩的部分就浪费了,但扩展分区是不能直接用的,他是以逻辑分区方式来使用的,所以说扩展分区可分成若干逻辑分区。他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分。
是硬盘磁盘分区的一种。严格的讲,他不是一个实际意义的分区,他仅仅是一个指向下一个分区的指针,这种指针结构将构成一个单向链表,存储分区数据。
8.逻辑分区:硬盘上的一块连续的区域,不同之处在于,每个主分区只能分成一个驱动器,每个主分区都有独立的引导块,可以用fdisk设定为启动区。一个硬盘上最多可以有四个分区,而扩展分区上可以划分出多个逻辑驱动器。这些逻辑驱动器没有独立的引导块,不能用fdisk设定为启动区。主分区和扩展分区都是dos分区。
##创建分区###
flisk /dev/vdb
Command (m for help): 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 ##修改分区
u change display/entry units
v verify the partition table
w ##将当前操作写入硬盘分区表
x extra functionality (experts only)
Command (m for help):
Command (m for help): n ##创建分区
Partition type:##创建分区类型 p主分区 e 扩展分区
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): wq ##保存分区策略并退出fdisk界面
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
cat /proc/partitions ##查看设备是否被系统识别
[root@localhost ~]# cat /proc/partitions
查看分区信息:cat /proc/partitions
mkfs.xfs /dev/vdb1 ##格式化设备,在设备上安装文件系统xfs
[root@localhost ~]# mkfs.xfs /dev/vdb1
blkid ##查看可用设备,可以看到被格式化好的设备/dev/vdb1
[root@localhost ~]# blkid
mount /dev/vdb1 /qq ##挂载设备使设备投入使用
##设备的永久挂载
vim /eetc/fstab ##设备挂载策略文件
设备 挂载点 文件类型 挂载参数 是否备份设备 是否检测设备
/dev/vdb1 /qq xfs defaults 0 0
reboot
#####注意:以上参数写错会使系统无法启动(用前面忘记密码后,重启系统的方式更改)######
1.重新启动系统
2.在系统启动阶段按上下健停止系统系统引导
3.选择启动引导标题,按“E”进行编辑
4.找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项
5.ctrl+x启动设定过后的系统引导条目
6.进入系统后执行chroot /sysroot切换到真实的系统环境
7.更改fstab,vim /etc/fstab
8.exit两次使系统自动重新启动
更改完配置文件,重启系统yunxing
查看设备的挂载df ,/dev/vdb挂载到qq下
若不想永久挂载,删除配文件中挂载内容即可
##删除分区
umount /dev/vdb1
fdisk /dev/vdb
d 删除
p 查看分区
查看分区信息 cat /proc/partitions
五、swap 分区的管理
1.##swap 交换分区,系统自己使用,不需要挂载
swap 分区的建立
1)划分分区,并修改分区的id为swap
fdisk /dev/vdb ##建立分区
Device Boot Start End Blocks Id System
/dev/vdb1 2048 206847 102400 83 Linux默认情况下,此分区时linux的普通分区
Command (m for help): p
Command (m for help): t ##修改分区id
Selected partition 1
Hex code (type L to list all codes): l ##列出所有id类型的代码
Hex code (type L to list all codes): 82 ##把/dev/vdb1的分区类型修改为swap,swap类型代码为82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
Command (m for help): p
/dev/vdb1 2048 206847 102400 82 Linux swap / Solaris
Command (m for help): wq
查看分区信息
2)[root@localhost ~]# mkswap /dev/vdb1 ##格式化swap文件系统格式
[root@localhost ~]# blkid ##查看可用设备
3)[root@localhost ~]# swapon -a /dev/vdb1 ##激活swap设备,使系统利用此设备
4)swap 分区的查看
swapon -s
[root@foundation60 ~]# swapon -s
永久设定
[root@ssh-server ~]# vim /etc/fstab
/swapfile swap swap defaults 0 0
##当磁盘全部被占用,不能创建新分区时,可以用文件来代替分区
[root@localhost ~]# dd if=/dev/zero of=/swapfile bs=1M count=1000
##此文件创建后的步骤和设备的步骤一致
2.##swap分区的删除
[root@localhost ~]# vim /etc/fstab ##删除配置文件中的内容
[root@localhost ~]# swapoff /dev/vdb1 ##关掉设备
[root@localhost ~]# swapoff /swapfile ##关掉文件
[root@localhost ~]# fdisk /dev/vdb ##删除分区
[root@localhost ~]# rm -rf /swapfile##删除文件
删除文件中的挂载内容
关掉设备swapoff /dev/vdb1
删除分区 fdisk /dev/vdb d:删除,p:查看分区
删除文件rm -fr /swapfile
查看分区信息,swap分区已删除
六、磁盘配额
为磁盘使用用户分配额度:能够做的最多的事情
##分区配额是针对与设备的
(1)新建分区
fdisk /dev/vdb n:新建 p:查看分区
(2)格式化文件系统格式为xfs
mkfs.xfs /dev/vdb
同步系统 proprobe
(3)设备的挂载 mount -o usrquota /dev/vdb1 /qq/
更改权限
(4)为磁盘使用用户student用户分配额度
blocks :用户在设备上已存在的大小
soft:软额度
hard:硬额度
inodes:文件个数
给student用户创建分区,有硬盘限制
永久的设备配额,修改配置文件
七、分区方式的修改
mbr<----->gpt
parted /dev/vdb
mklabel ##修改设备分区方式标签
gpt把原有的dos标签改成gpt格式
y
quit
查看设备 blkid
gpt<--->mbr
八、分区加密
1.建立分区
[root@localhost ~]# fdisk /dev/vdb
2.[root@localhost ~]# cryptsetup --help 建立加密,命令用法
[root@localhost ~]# cryptsetup luksFormat /dev/vdb1
WARNING!
========
This will overwrite data on /dev/vdb1 irrevocably.
Are you sure? (Type uppercase yes): YES是否加密,必须大写
Enter passphrase: 密码必须大于八位
Verify passphrase:
3.[root@localhost ~]# cryptsetup open /dev/vdb1 qq打开加密文件,文件名为qq
4.[root@localhost ~]# mkfs.xfs /dev/mapper/qq##文件系统格式化加密文件,名字为qq
5.[root@localhost ~]# mount /dev/mapper/qq /mnt/##文件格式化后可挂载
6.[root@localhost ~]# umount /mnt/ ##卸载
7.[root@localhost ~]# cryptsetup close qq ##关闭加密文件
[root@localhost ~]# mount /dev/mapper/qq /mnt/关闭之后不能执行挂载
mount: special device /dev/mapper/qq does not exist
[root@localhost ~]# cryptsetup open /dev/vdb1 qq在打开加密文件
Enter passphrase for /dev/vdb1:
[root@localhost ~]# mount /dev/mapper/qq /mnt/可执行
[root@localhost ~]# umount /mnt/
[root@localhost ~]# cryptsetup close qq
##开机自动挂载
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# vim /etc/crypttab
[root@localhost ~]# vim /root/passfile
[root@localhost ~]# chmod 600 /root/passfile
[root@localhost ~]# cryptsetup luksAddKey /dev/vdb1 /root/passfile
Enter any passphrase:
[root@localhost ~]# reboot
将信息写入配置文件
设备 挂载点 格式 参数 是否检测 是否备份
加密文件名字 设备 加密文件密码存放位置
密码写入文件 vim /root/passfile (密码个数超过八个)
给文件加上权限,提高保密性
reboot 让系统读取配置文件中的内容,自动挂载
##清除密码信息
[root@localhost ~]# umount /dev/mapper/qq ##卸载设备
[root@localhost ~]# cryptsetup close qq ##关闭
[root@localhost ~]# mkfs.xfs /dev/vdb1 -f##强制格式化文件系统
[root@localhost ~]# vim /etc/fstab##修改配置文件
[root@localhost ~]# vim /etc/crypttab ##删除文件中的内容
[root@localhost ~]# rm -fr /root/passfile ##删除密码
[root@localhost ~]# reboot ##重启
格式化文件系统,-f强制
删除配置文件中的内容
删除密码