linux中的设备管理
一.本地存储设备的识别
fdisk -l ##真实存在的设备
cat /proc/partitions ##系统识别的设备
blkid ##系统可使用的设备
df ##系统正在挂载的设备
二.设备的挂载和卸载
1.设备名称
/dev/xdx ##/dev/hd0 /dev/hd1 /dev/sda /dev/sdb
hd 并口硬盘 sd串口 vd:虚拟硬盘
/dev/sr0 ##系统中的光驱
/dev/mapper/* ##系统中的虚拟设备
2.设备的挂载
mount 设备 挂载点
mount /dev/sdb1 /mnt ##挂载sdb1到mnt
umount /mnt 或/dev/sdb1 ##卸载
mount -o ro /dev/sdb1 /mnt ##只读挂载即所挂载的地方只能进行读的操作而无法写入
mount ##查看挂载信息
mount -o remount,rw /dev/sdb1 或 /mnt ##重新读写挂载
3.解决设备正忙情况
问题:
[[email protected] ~]# 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))
解决方法一:
lsof /mnt
umount /mnt
[[email protected] ~]# lsof /mnt
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 9341 root cwd DIR 8,1 4096 192 /mnt
[[email protected] ~]# kill -9 9341
[[email protected] ~]# umount /mnt
解决方法二:
fuesr -kvm /mnt
umount /mnt
446个字节的mbr引导磁头到系统启动分区
mpt分区表:记录分区信息
三.磁盘分区
1.硬盘0磁道1扇区的512个字节中记录的信息如下:
512 =446 + 64 + 2
^ ^ ^
mbr(主引导记录) mpt(主分区表) 55aa(硬盘的有效性标识)
MBR 主引导分区 446字节
MPT 主分区表 64字节
55aa 硬盘的有效性标识 2字节
2.硬盘主分区表
1个分区占用16个字节
1个硬盘上最多可以划分4个主分区
mbr分区方式:大小不能超过2T
P:主分区,真实存在
主分区
主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。其中的主引导程序是它的一部分,此段程序主要用于检测硬盘分区的正确性,并 确定活动分区,负责把引导权移交给活动分区的DOS或其他操作系统。此段程序损坏将无法从硬盘引导,但从软驱或光驱引导之后可对硬盘进行读写。
E:扩展分区,里面建立逻辑分区。是一个容器
扩展分区
所 谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外, 仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找 到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑
L:逻辑分区
逻辑分区
逻辑分区 是硬盘上一块连续的区域,不同之处在于,每个主分区只能分成一个驱动器,每个主分区都有各自独立的引导块,可以用fdisk设定为启动区。一个硬盘上最多 可以有4个主分区,而扩展分区上可以划分出多个逻辑驱动器。这些逻辑驱动器没有独立的引导块,不能用fdisk设定为启动区。主分区和扩展分区都是dos 分区。
3.分区步骤
1.fdisk -l
2.fdisk /dev/vdb
m
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)
3.建立主分区
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: 0x6df442a8
Device Boot Start End Blocks Id System
/dev/vdb1 2048 1026047 512000 83 Linux
4.当系统有三个主分区时:
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free) ##3个主分区出现要先划分扩展分区
e extended
Select (default e): e
Selected partition 4
First sector (3074048-20971519, default 3074048):
Using default value 3074048
Last sector, +sectors or +size{K,M,G} (3074048-20971519, default 20971519):
Using default value 20971519
Partition 4 of type Extended and of size 8.5 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: 0x8a543314
Device Boot Start End Blocks Id System
/dev/vdb1 2048 1026047 512000 83 Linux
/dev/vdb2 1026048 2050047 512000 83 Linux
/dev/vdb3 2050048 3074047 512000 83 Linux
/dev/vdb4 3074048 20971519 8948736 5 Extended ##把所有空间都给E
四.给设备安装文件系统
ext4 rhel5及之前的版本 最多支持32Tb的文件系统和2t文件,实际2tb文件系统,16G文件
xfs rhel7.2 18EB 9EB 7G/s 4G/s
mkfs.xfs 格式化/dev/vdb1
mount /dev/vdb1 /mnt 挂载在/mnt下
永久挂载
vim /etc/fstab
设备 挂载点 文件系统 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs defaults 0 0
加入
/dev/vdb1 /mnt xfs defaults 0 0
df 查看一下是否挂载
6.如果/etc/fstab/中参数发生错误
reboot一下 看看是否永久的挂载上 重启之后还是挂载上 一般的挂载重启之后还得重新挂载的
如若不小心配置文件真的写错 不要着急 我们可以进行如下的操作
(1)开机时候上下键 e进入
(2) 将Linux那个最长的一行一直删除 一直删除到r...这时这里改为 rw rd.break
(3) 执行命令chroot /sysroot
(4) vim /etc.fstab 修改你写错的配置文件
(5)exit exit
五.swap分区管理
1.swap分区建立
划分分区并设定标签为82
mkswap /dev/vdb5
swapon -a /dev/vdb5
swapon -s ##查看swap状态是否被**
永久**
vim /etc/fstab
/dev/vdb5 swap swap defaults 0 0
2.swap分区删除
vim /etc/fstab
删除fstab里的
swapoff /dev/vdb5
swapon -s
先挂设备再改权限
六.配额
配额是针对于分区的
dfisk dev/vdb
建立分区6
partprobe
mkfs.xfs /dev/vdb6
mount -o usrquota /dev/vdb6 /mnt
chmod 777 /mnt
edquota -u student ##设置student的配额
blocks ##文件已占用分区大小 soft ##文件超出配额大小,报警
hard ##文件不能超出配额大小 inodes ##文件个数
soft ##文件/目录个数,超额报警 hard ## 文件/目录个数不能超额
vim /etc/fstab
/dev/vdb7 /public xfs defaults,usrquota 0 0
测试:用用户去测试配额限制
[[email protected] ~]$ dd if=/dev/zero of=/public/studentfile bs=1M count=20
配额正常时
超出配置时,只能截取配额大小的容量
七.磁盘加密
1.LUKS加密
dfisk dev/vdb
建立分区7
partprobe
mkfs.xfs /dev/vdb7
1.加密格式化 cryptsetup luksFormat /dev/vdb7
解密后给他另一个名字
cryptsetup open /dev/vdb7 westos
mkfs.xfs /dev/mapper/westos ##格式化
mount /dev/mapper/westos /mnt 挂载
touch /mnt/file{1..9}
umount /mnt/ 卸载
cryptsetup close westos ##关闭盖子
关闭盖子后查看不了/mnt/下的文件
要想再看打开盖子
cryptsetup open /dev/vdb7 westos
mount /dev/mappper/westos /mnt
2.磁盘加密开机自动挂载
vim /etc/fstab
/dev/mapper/westos /mnt xfs defaults 0 0
vim /etc/crypttab
westos /dev/vdb7 /root/westoskey
vim /root/westoskey
westos123 ##密码
设备关闭的情况下格式化