您的位置:首页 > 运维架构 > Linux

linux——存储设备的管理

2017-11-08 19:04 459 查看

一.设备的查看

1) 发现系统中的设备

fdisk -l    ####看硬盘




cat /proc/partitions   #####看系统




2)系统发现的,但是没有投入使用,随时可以使用的设备

blkid   查看设备的id




3)发现并且在使用的设备

df -h



df -H



二.设备名称的解读

/dev/xd*

x=s /dev/sd* ####sata硬盘 或者 iscsi网络存储

x=v ####虚拟硬盘 ,一般使用在虚拟机里

x=h ####ide 硬盘 ,一般出现在老式电脑里

*=a~ 。。。 ####/dev/vda ,系统中第一块虚拟硬盘

/dev/sda1 ###系统中第一块sata硬盘的第一个分区

/dev/cdrom , /dev/sr[0-….] ###系统中的光驱

/dev/mapper/* ####系统中的虚拟设备

三.设备的使用

设备必须要用目录来对设备中的内容进行读取所以设备在使用时需要做挂载动作

1.blkid 识别设备

mount + 设备 + 挂载点

mount /dev/sdb1 /mnt ###把系统中第二块硬盘的第一个分区挂载在mnt 下



mount -o ro /dev/sdb1 /mnt/ ###只读挂载



[root@foundation85 ~]# cd /mnt

[root@foundation85 mnt]# touch file

touch: cannot touch ‘file’: Read-only file system



mount -o remount ,rw /mnt ###在设备被使用时更改设备的挂载参数对设备挂载进行热更改

[root@foundation85 mnt]# mount -o remount,rw /mnt

[root@foundation85 mnt]# touch file

[root@foundation85 mnt]# ls

?? ?? ?? ?? ???? ????
f771
????? file linux ppt?? System Volume Information ??.txt



2.设备卸载

umount +设备 | +挂载点



注意当卸载设备时出现下列情况

[root@foundation6 mnt]# umount /dev/sdb1

umount: /mnt: target is busy.

(In some cases useful info about processes that use

the device is found by lsof(8) or fuser(1))



标示设备正在使用,处理方式:

进程发现的方式

[root@foundation6 ~]# fuser -vm /dev/sdb1

USER        PID ACCESS COMMAND


/dev/sdb1: root kernel mount /mnt

root 7639 F…. vim

[root@foundation85 mnt]# fuser -vm /mnt

USER        PID ACCESS COMMAND


/mnt: root kernel mount /mnt

root 3550 ..c.. bash



[root@foundation6 ~]# 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

vim 7639 root 3u REG 8,17 12288 4469 /mnt/.file.swp



进程终止的方式:





[root@foundation6 ~]# fuser -kvm /dev/sdb1

USER        PID ACCESS COMMAND


/dev/sdb1: root kernel mount /mnt

root 7639 F…. vim



四.分区管理

1.mbr主引导记录446个字节 ###0磁道 1扇区

2.mpt主分区表 64个字节 ###记录分区信息

3.硬盘的有效标示“55aa”2个字节

4.一个主分区占用16个字节记录分区信息

5.一块硬盘上如果用mbr 的分区方式最多有4个主分区 一个分区最多2t

6.主分区、扩展分区、逻辑分区

硬盘容量与主分区、扩展分区、逻辑分区的关系:

硬盘的容量=主分区的容量+扩展分区的容量

扩展分区的容量=各个逻辑分区的容量之和

硬盘分区有三种,主磁盘分区、扩展磁盘分区、逻辑分区。

一个硬盘主分区至少有1个,最多4个,扩展分区可以没有,最多1个。且主分区+扩展分区总共不能超过4个。逻辑分区可以有若干个。

分出主分区后,其余的部分可以分成扩展分区,一般是剩下的部分全部分成扩展分区,也可以不全分,那剩的部分就浪费了。

但扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分成若干逻辑分区。他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分。

在linux中第一块硬盘分区为hda分区,主分区编号为hda1-4,逻辑分区从5开始。

硬盘的容量=主分区的容量+扩展分区的容量

扩展分区的容量=各个逻辑分区的容量之和

主分区也可成为“引导分区”,会被操作系统和主板认定为这个硬盘的第一个分区。所以C盘永远都是排在所有磁盘分区的第一的位置上。

MBR(主引导记录)的分区表(主分区表)只能存放4个分区,如果要分更多的分区的话就要一个扩展分区表(EBR),扩展分区表放在一个系统ID为0x05的主分区上,这个主分区就是扩展分区,扩展分区能可以分若干个分区,每个分区都是个逻辑分区

2扩展分区和逻辑分区

DOS和FAT文件系统最初都被设计成可以支持在一块硬盘上最多建立24个分区,分别使用从C到Z 24个驱动器盘符。但是主引导记录中的分区表最多只能包含4个分区记录,为了有效地解决这个问题,DOS的分区命令FDISK允许用户创建一个扩展分区,并且在扩展分区内再建立最多23个逻辑分区,其中的每个分区都单独分配一个盘符,可以被计算机作为独立的物理设备使用。关于逻辑分区的信息都被保存在扩展分区内,而主分区和扩展分区的信息被保存在硬盘的MBR内。这也就是说无论硬盘有多少个分区,其主启动记录中只包含主分区(也就是启动分区)和扩展分区两个分区的信息。

五.分区建立

[root@log-server ~]# fdisk /dev/vdb





m 获得帮助

d 删除分区

n 新建分区

p 显示分区表信息

q 退出

t 修改分区 id

w 将当前操作写入硬盘分区表

注意若出现这种状况:

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)

[root@log-server ~]# cat /proc/partitions

major minor #blocks name

253 0 10485760 vda

253 1 10484142 vda1

253 16 10485760 vdb

253 17 1024000 vdb1

253 18 102400 vdb2

[root@log-server ~]# partprobe ####同步分区表

[root@log-server ~]# cat /proc/partitions

major minor #blocks name

253 0 10485760 vda

253 1 10484142 vda1

253 16 10485760 vdb

253 17 1024000 vdb1

253 18 102400 vdb2

253 19 102400 vdb3

cat /proc/partitions ### 查看设备是否被系统识别



mkfs.xfs /dev/vdb1 ###格式化设备,在设备上安装文件系统 xfs



设备挂载



设备永久挂载

vim /etc/fstab ###设备挂载策略文件

设备 挂载点 文件系统类型 挂载参数 是否备份 是否检测设备

/dev/vdb1 /mnt xfs defaults 0 0



[root@log-server ~]# mount -a



如果出现这种情况

mount: wrong fs type, bad option, bad superblock on /dev/vdb1, missing codepage or helper program, or other error

In some cases useful info is found in syslog - try
dmesg | tail or so.


配置文件写错了 ,重新检查配置文件

六.删除分区

umount /dev/vdb1

vim /etc/fstab



[root@log-server ~]# cat /proc/partitions



[root@log-server ~]# fdisk /dev/vdb



[root@log-server ~]# cat /proc/partitions



七.swap 分区的管理

swap 交换分区,是系统自己使用,不需要挂载

1.swap分区的查看

[root@foundation6 ~]# swapon -s



2.swap 分区的建立

划分分区,并修改分区的id为swap

[root@log-server ~]# fdisk /dev/vdb



格式化设备为swap文件系统格式

[root@log-server ~]# mkswap /dev/vdb1



激活swap设备,

[root@log-server ~]# swapon -a /dev/vdb1



永久激活

[root@log-server ~]# vim /etc/fstab

/dev/vdb1 swap swap defaults 0 0





当磁盘全部被占用,不能创建新的分区时,可以用文件来代替分区

创建文件

[root@log-server ~]# dd if=/dev/zero of=/swapfile bs=1M count=100



此文件创建后的步骤和设备的步骤一致

分区格式化

[root@log-server ~]# mkswap /swapfile

激活分区

[root@localhost ~]# swapon -a /swapfile

查看分区

[root@localhost ~]# swapon -s



3.swap 分区的删除

vim /etc/fstab

2).停止

swapoff /dev/vdb1

3).删除 /dev/vdb1

fdisk /etc/fstab

注意如果误删了:

即rm 删除了 /dev/vdb1

[root@log-server ~]# ll /dev/vdb

brw-rw—-. 1 root disk 253, 16 Nov 4 06:58 /dev/vdb

mknod /dev/vdb1 b 设备参数

[root@log-server ~]# mknod /dev/vdb1 b 253 17

Device Boot Start End Blocks Id System

/dev/vdb1 2048 2050047 1024000 83 Linux



八.磁盘配额

为磁盘使用用户划分额度 #####分区配额针对设备

激活设备配额参数

[root@log-server ~]# mount -o usrquota /dev/vdb1 /mnt

注意如果出现这中情况:

mount: unknown filesystem type ‘swap’

root@log-server ~]# mkfs.xfs /dev/vdb1 -f



root@log-server ~]# mount -o usrquota /dev/vdb1 /mnt

root@log-server ~]# chmod 777 /mnt/

root@log-server ~]# edquota -u student /dev/vdb1

Disk quotas for user student (uid 1000):

Filesystem blocks soft hard inodes soft hard

/dev/vdb1 300 0 300 1 0 0



student@log-server ~]$ dd if=/dev/zero of=/mnt/file bs=1M count=201

dd: error writing ‘/mnt/file’: Disk quota exceeded ###超过分区额度

1+0 records in

0+0 records out

204800 bytes (205 kB) copied, 0.000734243 s, 279 MB/s



开机自动激活配额

vim /etc/fstab

设备 挂载点 文件系统类型 挂载参数 是否备份 是否检测设备

/dev/vdb1 /mnt xfs defaults usrequota 0 0



分区方式的修改 mbr 与 gpt 格式互换

mbr转 gpt

root@log-server ~]# parted /dev/vdb





fdisk -l 可以查看

Disk label type: gpt ###设备分区方式为gpt

gpt转 mbr

root@log-server ~]# 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?

aix amiga bsd dvh gpt loop mac msdos pc98 sun

New disk label type? msdos

Warning: The existing disk label on /dev/vdb will be destroyed and all data on this disk will be lost.

Do you want to continue?

Yes/No? yes

(parted) q

Information: You may need to update /etc/fstab.

[root@log-server ~]# fdisk -l

Disk label type: dos

八.分区加密

1.建立分区

2.luks 加密

root@localhost ~]# cryptsetup luksFormat /dev/vdb1 ####给设备进行加密



root@localhost ~]# cryptsetup open /dev/vdb1 westos #####打开加密

Enter passphrase for /dev/vdb1:



root@localhost ~]# mkfs.xfs /dev/mapper/westos ####该斌文件系统格式



root@localhost ~]# mount /dev/mapper/westos /mnt/

root@localhost mnt]# touch file



root@localhost ~]# umount /mnt

root@localhost ~]# cryptsetup close westos

root@localhost ~]# mount /dev/mapper/westos /mnt

mount: special device /dev/mapper/westos does not exist



3.加密设备开机自动挂载 .

root@localhost ~]# vim /etc/fstab

/dev/mapper/westos /mnt xfs d 0 0

[root@localhost ~]# vim /etc/crypttab

westos /dev/vdb1 /root/passfile

[root@localhost ~]# vim /root/passfile ####写加密 密码

root@localhost ~]# chmod 600 /root/passfile

[root@localhost ~]# cryptsetup luksAddKey /dev/vdb1 /root/passfile ###关联 设备与密码

检验

root@localhost ~]# cryptsetup open /dev/vdb1 westos

Enter passphrase for /dev/vdb1:

root@localhost ~]# mount -a

root@localhost ~]# df

/dev/mapper/westos 608940 30776 578164 6% /mnt

root@localhost ~]# reboot

root@localhost ~]# df

/dev/mapper/westos 608940 30776 578164 6% /mnt







加密清除

[root@localhost ~]# umount /mnt

[root@localhost ~]# cryptsetup close westos ####关闭密码

[root@localhost ~]# mkfs.xfs /dev/vdb1 -f ####格式化 设备

[root@localhost ~]# vim /etc/fstab

[root@localhost ~]# vim /etc/crypttab

[root@localhost ~]# rm -rf /root/passfile



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: