一. 磁盘的管理
1. 关于磁盘与硬盘
这两个东西不是一个概念. 二者是互相交叉的.
磁盘, 是计算机的外部存储器中类似磁带的装置, 将圆形的磁性盘片装在一个方的密封盒子里, 这样做的目的是为了防止磁盘表面划伤, 导致数据丢失. 磁盘有软磁盘, 硬磁盘. 硬磁盘就是机械硬盘.
硬盘是电脑主要的存储媒介之一, 由一个或者多个铝制或者玻璃制的碟片组成. 碟片外覆盖有铁磁性材料. 硬盘有固态硬盘 (SSD 盘, 新式硬盘), 机械硬盘 (HDD 传统硬盘), 混合硬盘 (HHD 一块基于传统机械硬盘诞生出来的新硬盘).SSD 采用闪存颗粒来存储, HDD 采用磁性碟片来存储, 混合硬盘 (HHD: Hybrid Hard Disk) 是把磁性硬盘和闪存集成到一起的一种硬盘. 绝大多数硬盘都是固定硬盘, 被永久性地密封固定在硬盘驱动器中.
2. 本地存储设备的判别
- fdisk -l ## 查看本机真实存在的设备, 真实存在的设备不一定能被系统识别
- cat /proc/partition ## 查看系统能识别的设备, 系统能识别的设备不一定可以使用
- blkid ## 查看系统可使用的设备
- df ## 查看系统正在挂载的设备
3. 设备的挂载和卸载
(1). 设备的名称
用 df 进行查看
可以看到一般的存储设备名称都是 /dev/xdx , 例如:
/dev/hd0 /dev/hd1 这类设备都是并口硬盘, 简称 IDE 硬盘, 使用的是并口接口 (LPT), 数字代表第几块硬盘, 如 hd0 代表第一块并口硬盘, 下面也可以类推
/dev/sda /dev/sdb 这类设备为串口硬盘, 现在使用的是 sata 接口, 串行 ATA 总线使用嵌入式时钟信号, 具备了更强的纠错能力, 与以往相比其最大的区别在于能对传输指令 (不仅仅是数据) 进行检查, 如果发现错误会自动矫正, 这在很大程度上提高了数据传输的可靠性. 串行接口还具有结构简单, 支持热插拔的优点.
/dev/sr0 /dev/sr1 光驱设备
/dev/mapper/xxx 虚拟设备
(2). 设备的挂载
使用的命令: mount
命令格式为: mount + 要挂载的设备 + 挂载点
- mount /dev/sdb1 /mnt ## 把 sdb1 挂载到 / mnt 上
- umount /mnt /dev/sdb1 ## 卸载挂载 mnt 上的 sdb1
- mount -o ro /dev/sdb1 /mnt ## 只读挂载 sdb1
- mount ## 查看挂载信息
- mount -o remount,rw /dev/sdb1 |/mnt ## 重新挂载并设定为读写挂载
3. 解决设备正忙情况
当有程序正在使用挂载目录时, 正常的卸载是无法完成的, 这时需要以下操作完成强行卸载
方法一:
- fuser -kvm /mnt ## 强行停止程序对该目录的使用, 该操作会关闭当前的 shell
- umount /mnt
方法二:
lsof /mnt
kill -9 进程 IP
umount /mnt
4 设定永久挂载
方法一: 使用开机自启动脚本
vim /etc/rc.d/rc.local
编辑内容如下:
mount /dev/vdb1 /mnt
注: rc.local 是个脚本, 在其中编辑的内容为 shell 的命令
方法二: 使用自动挂载策略
vim /etc/fstab
编辑内容如下:
/dev/vdb1 /mnt/ xfs defaults 0 0 ##xfs 表示挂载的文件系统格式, defaults 表示默认自动挂载, 第一个 0 代表不备份, 第二个 0 代表不检测
保存退出以后用 df 命令查看, 发现没有挂载
mount -a ## 读取文件中的挂载策略, 使没有生效的策略立即生效
注: 策略的书写格式和脚本不同, 且开机执行顺序优先于 rc.local, 具体格式可以 man 5 fstab 查看
5.fstab 的报错
策略文件书写格式错误时, 例如:
/dev/vdb1 /mnt defa 0 0 ## 错误的写法
重启会导致系统无法正常启动
解决方法:
输入 root 的密码登陆, 之后上面会有报错的信息
在无图形的界面输入 vim /etc/fstab
把错误的行命令用 #注释起来, wq 退出保存
reboot
系统即可重启
partprobe ## 手动同步分区表
当电脑某一个设备正在被系统使用的时候, 他自动读取分区表就会失败, 所以需要手动读取
6.swap 分区管理
(1)swap 分区的建立 (设定分区并设定分区标签为 swap, 以 vdb3 为例)
- fdisk /dev/vdb ## 管理磁盘及分区
- t ## 修改分区标签
分区数字 ## 修改第几个的标签
- l ## 列出所有代码, 可以看到所有的标签及对应分区含义
- 82 ## 修改为 swap 分区
- wq ## 退出保存
- partprobe ## 同步分区表
- mkswap /dev/vdb3 ## 对设备进行 swap 格式化
- swapon -a /dev/vdb3 ## 激活
- swapon -s ## 查看是否激活
注: 这个操作也是临时的, 重启后会消失, 如果想要永久激活, 还是要写入 /dev/fstab
- vim /etc/fstab
- /dev/vdb6 swap swap defaults 0 0
(2)swap 的删除
- vim /etc/fstab
- #/dev/vdb3 swap swap defaults 0 0 ## 将这行删除或者注释掉
- swapoff /dev/vdb3 ## 删除 swap 分区
- swapon -s ## 查看
7. 用户配额设定 (分配额度, 最大能使用额度)
配额是针对分区 (比方: student 用户在某一个设备的配额是定的, 在别的不一定, 如果配额是针对用户的话, 那就代表在电脑里只能编写定额的文件)
- mount -o usrquota /dev/vdb7 /student
- chmod 777 /student
- edquota -u student ## 设定所有人的配额, 在开机的时候会失效, 因为挂载是临时的
永久挂载:
- vim /etc/fstab
- /dev/vdb7 /student xfs defaults,usrquota(参数) 0 0
测试:(用设定的用户测)
- dd if=/dev/zero of=/student/studentfile bs=1M count=200
- du -sh /student
示例:
重新建立一个磁盘分区 / dev/vdb7
- mkdir /student
- chmod 777 /student
- ls -ld /student
- mount /dev/vdb7 /student
- ls -ld /student ## 此时权限改成了 755
注意: 先挂设备再改目录权限, 因为目录权限本身是记录在设备里的, 每挂载之前和挂载之后度的设备不一样, 刚开始读的是 / dev/vda1, 挂载后读的是 / dev/vdb7.
8. 设备的加密 --luks(基于文件系统的加密)
- cryptsetup luksFormat /dev/vdb8 ## 加密格式化
- YES ## 必须要大写
- cryptsetup open /dev/vdb8 hello(名字任意的)
- mkfs.xfs /dev/mapper/hello ## 格式化 mapper 虚拟设备
- mount /dev/mapper/hello /mnt
- touch /mnt/file{1..6}
- umount /mnt
- cryptsetup close hello
查看:
- cryptsetup open /dev/vdb8 hello ## 需要密码
- mount /dev/mapper/hello /mnt
来源: http://www.bubuko.com/infodetail-2728498.html