概述
本篇主要讲述:
mount挂载;
磁盘管理;
格式化文件系统;
LVM逻辑卷的使用;
swap交换分区
1、mount挂载操作
(1) 含义:
将光盘,U盘,分区,网络存储等设备装到某个Linux目录。
各种命令工具通过访问Linux目录来操作这些设备。
(2) 访问光盘的内容
Windows:
光盘文件------->光驱设备------->CD驱动器(图标)
访问点(挂载点): 访问设备内容需要通过访问点
Linux:
光盘文件------->光驱设备-------------->目录(/dvd)
/dev/sr0
/dev/hdc
[root@A ~]# ls /dev/cdrom #光驱设备的快捷方式
[root@A ~]# ls -l /dev/cdrom
[root@A ~]# mkdir /dvd
[root@A ~]# mount /dev/cdrom /dvd #提供设备的访问点
mount: /dev/sr0 写保护,将以只读方式挂载
[root@A ~]# ls /dvd/
[root@A ~]# ls /dvd/Packages/
[root@A ~]# mkdir /abc
[root@A ~]# mount /dev/cdrom /abc #挂载
[root@A ~]# ls /abc
[root@A ~]# umount /abc #卸载
[root@A ~]# ls /abc
(3) 实现开机自挂载
在/etc/fstab文件内设置
设备/UUID 挂载点 挂载的文件系统类型 设置挂载的参数 dump是否备份 fsck磁盘检查
文件系统类型:ext2,ext3,ext4,xfs...
挂载的参数分类如下:
auto: 系统自动挂载,fstab默认就是这个选项
defaults: rw, suid, dev, exec, auto, nouser, and async.
noauto 开机不自动挂载
nouser 只有超级用户可以挂载
ro 按只读权限挂载
rw 按可读可写权限挂载
user 任何用户都可以挂载
请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto
dump备份设置:
其值设置为1时,允许备份;设置为0时,忽略备份
开机是否fsck磁盘检查:
其值设置为1时,开机进行检查;设置为0时,不进行检查。
2、磁盘管理
磁道:track
扇区:sector 每个扇区,512字节
磁头:head
柱面:cylinde
2.1 MBR/msdos 分区模式
– 1~4个主分区,或者 0~3个主分区+1个扩展分区(n个逻辑分区)
– 最大支持容量为 2.2TB 的磁盘
– 扩展分区不能格式化
识别硬盘 => 分区规划 => 格式化 => 挂载使用
2.2 查看磁盘lsblk
[root@server0 ~]# lsblk
2.3 修改硬盘的分区表
使用fdisk 命令(分区格式为MBR)
使用gdisk命令(分区格式为GPT)
常用交互指令:
m 列出指令帮助
p 查看现有的分区表
n 新建分区
d 删除分区
q 放弃更改并退出
w 保存更改并退出
[root@server0 ~]# fdisk /dev/vdb
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +2G
p 查看分区表
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +2G
d 删除分区
w 保存并退出
[root@server0 ~]# ls /dev/vdb[1-2]
/dev/vdb1 /dev/vdb2
[root@server0 ~]# lsblk
2.4 格式化文件系统
mkfd工具集
mkfs.ext3 分区设备路径
mkfs.ext4 分区设备路径
mkfs.xfs 分区设备路径
mkfs.vfat 分区设备路径
[root@server0 ~]# mkfs.xfs /dev/vdb1
[root@server0 ~]# mkfs.ext4 /dev/vdb2
2.5 查看分区文件系统
blkid
[root@server0 ~]# blkid /dev/vdb1
[root@server0 ~]# blkid /dev/vdb2
挂载使用
[root@server0 ~]# mkdir /part1
[root@server0 ~]# mkdir /part2
[root@server0 ~]# mount /dev/vdb1 /part1
[root@server0 ~]# mount /dev/vdb2 /part2
2.6 查看正在挂载使用的设备信息
[root@server0 ~]# df -h
缓解根分区的压力
[root@server0 ~]# find -size 查找较大的目录有哪些
[root@server0 ~]# 还分新的分区 /dev/vdc1
[root@server0 ~]# mount /dev/vdc1 /mnt
[root@server0 ~]# cp -r /home/* /mnt
[root@server0 ~]# rm -rf /home/*
[root@server0 ~]# umount /mnt
[root@server0 ~]# mount /dev/vdc1 /home
将虚拟机server重起
[root@server0 ~]# reboot
总结:
1.查看硬盘 lsblk
2.划分分区 fdisk
3.刷新分区表 partprobe
4.格式化文件系统 mkfs.xfs mkfs.ext4
5.挂载 mount
6.开机自动挂载 /etc/fstab
3、LVM逻辑卷的使用(logicl volume)
1)整合分散的空间
2)实现分区的动态扩大与缩减
在“分区 --> 格式化”中间增加的一个逻辑层
–零散空闲存储 ---- 整合的虚拟磁盘 ---- 虚拟的分区----- 格式化------ 挂载
物理卷:Physical Volume
卷组:Volume Group
逻辑卷:Logical Volume
将众多的物理卷,组成卷组,再从卷组中划分逻辑卷
综合分区
将/dev/vdc划分6个分区,3个主分区,一个扩展分区,2个逻辑分区
[root@server0 ~]# fdisk /dev/vdc
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G
p 查看分区表
n 创建新的分区
----->回车---->起始回车----->结束回车 将所有空间给扩展分区
p 查看分区表
n 创建新的分区----->起始回车------>结束+10G
n 创建新的分区----->起始回车------>结束+10G
wq 保存并退出
[root@server0 ~]# partprobe #刷新分区表
[root@server0 ~]# ls /dev/vdc[1-6]
[root@server0 ~]# lsblk
[root@server0 ~]# ls /dev/vdc*
3.1 新建逻辑卷
1)新建卷组
命令格式:vgcreate 卷组名称 分区路径
[root@server0 ~]# vgcreate myvg /dev/vdc1 /dev/vdc2
[root@server0 ~]# vgs
[root@server0 ~]# pvs #查看卷组
2)创建逻辑卷
命令格式:lvcreate -n 逻辑卷名称 -L 大小 基于卷组
[root@server0 ~]# lvcreate -n mylv -L 16G myvg
[root@server0 ~]# lvs #查看逻辑卷
3)使用LVM逻辑卷
[root@server0 ~]# mkfs.ext4 /dev/myvg/mylv #格式化
[root@server0 ~]# mkdir /lvm
vim /etc/fstab #开机自挂载
路径 挂载点 格式 defaults 0 0
[root@server0 ~]# mount -a
[root@server0 ~]# df -h
3.2 LVM逻辑卷的扩展
(1)卷组有足够的剩余空间
a.直接扩展逻辑卷的空间
[root@server0 ~]# vgs
[root@server0 ~]# lvextend -L 19G /dev/myvg/mylv
[root@server0 ~]# lvs
[root@server0 ~]# vgs
b.扩展文件系统的大小
扩展ext4文件系统:使用resize2fs进行格式化
扩展xfs文件系统: 使用xfs_growfs进行格式化
[root@server0 ~]# df -h | tail -1
[root@server0 ~]# blkid /dev/myvg/mylv
[root@server0 ~]# resize2fs /dev/myvg/mylv #格式化
[root@server0 ~]# df -h | tail -1
(2)卷组没有足够的剩余空间
a.扩展卷组空间
[root@server0 ~]# vgextend myvg /dev/vdc3
[root@server0 ~]# vgs
b.直接扩展逻辑卷的空间
[root@server0 ~]# vgs
[root@server0 ~]# lvextend -L 25G /dev/myvg/mylv
[root@server0 ~]# lvs
[root@server0 ~]# vgs
c.扩展文件系统的大小
[root@server0 ~]# df -h | tail -1
[root@server0 ~]# resize2fs /dev/myvg/mylv
[root@server0 ~]# df -h | tail -1
以下作为了解:
缩减:不要做, 先缩减文件系统的大小,在缩减空间大小
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G
[root@server0 ~]# umount /lvm
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G
resize2fs 1.42.9 (28-Dec-2013)
请先运行 'e2fsck -f /dev/myvg/mylv'.
[root@server0 ~]# e2fsck -f /dev/myvg/mylv
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G
[root@server0 ~]# lvreduce -L 10G /dev/myvg/mylv
[root@server0 ~]# lvreduce -L 10G /dev/myvg/mylv
WARNING: Reducing active logical volume to 10.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y
3.3 创建卷组的时候设置PE大小
– vgcreate -s PE大小 卷组名 空闲分区...
– vgchange -s PE大小 卷组名
PE:卷组划分空间的单位 4M
[root@server0 ~]# vgdisplay myvg
[root@server0 ~]# vgchange -s 2M myvg
[root@server0 ~]# vgdisplay myvg
3.4 创建逻辑卷的时候指定PE个数
lvcreate -l PE个数 -n 逻辑卷名 卷组名
[root@server0 ~]# lvcreate -l 102 -n lvtest02 myvg
Logical volume "lvtest02" created
[root@server0 ~]# lvs
4、交换分区swap(虚拟内存)
• 相当于虚拟内存,
– 当物理内存不够用时,使用磁盘空间来模拟内存
– 在一定程度上缓解内存不足的问题
[root@server0 ~]# swapon -s #查看交换空间,组成 成员信息
[root@server0 ~]# mkswap /dev/vdc5 #格式化,交换文件系统
[root@server0 ~]# swapon /dev/vdc5 #启用交换分区
[root@server0 ~]# mkswap /dev/vdc6 #格式化,交换文件系统
[root@server0 ~]# swapon /dev/vdc6 #启用交换分区
[root@server0 ~]# swapon -s
开机自动启用交换分区 /etc/fstab
[root@server0 ~]# vim /etc/fstab #开机自挂载
/dev/vdc5 swap swap defaults 0 0
/dev/vdc6 swap swap defaults 0 0
[root@server0 ~]# swapoff /dev/vdc[5-6] #停用交换分区
[root@server0 ~]# swapon -s
[root@server0 ~]# swapon -a #检测/etc/fstab交换分区
[root@server0 ~]# swapon -s
大容量的使用gpt分区模式:gdisk
交换分区的优先级:-1
逻辑卷的扩展:扩展之后lsblk 显示的是扩展之后的总容量
而df -h显示的还是原来的大小
磁盘情况刷新:partprobe
功能 物理卷管理 卷组管理 逻辑卷管理
scan/扫描 pvscan vgscan lvscan
create/创建 pvcreate vgcreate lvcreate
display pvdisplay vgdisplay lvdisplay
remove pvremove vgremove lvremove
extend vgextend lvextend
5、关于dd命令的使用
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2
dd if="input_file" of="out_file" bs="block_size" count="number"
参数注释:
1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
4. cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
5. skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
6. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
7. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
8. conv=conversion:用指定的参数转换文件。
ascii:转换ebcdic为ascii
ebcdic:转换ascii为ebcdic
ibm:转换ascii为alternate ebcdic
block:把每一行转换为长度为cbs,不足部分用空格填充
unblock:使每一行的长度都为cbs,不足部分用空格填充
lcase:把大写字符转换为小写字符
ucase:把小写字符转换为大写字符
swab:交换输入的每对字节
noerror:出错时不停止
notrunc:不截短输出文件
sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
转载于:https://blog.51cto.com/13452945/2071633
最后
以上就是幸福汽车为你收集整理的6、磁盘与文件系统管理的全部内容,希望文章能够帮你解决6、磁盘与文件系统管理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复