Linux磁盘分区-mount挂载
Linux磁盘分区类型
磁盘存储术语CHS
- head:磁头 磁头数=盘面数
- track:磁道 磁道=柱面数
- sector:扇区,512bytes
- cylinder:柱面 1柱面=512*sector数/track*head数=512*63*255=7.84M
CentOS 5 之前版本 Linux 以柱面的整数倍划分分区,CentOS 6之后可以支持以扇区划分分区
管理存储
适用磁盘空间过程
- 设备文件
- 创建文件系统
- 挂载新的文件系统
1、磁盘分区
1.1为什么分区
- 优化I/O性能
- 实现磁盘空间配额限制
- 提高修复速度
- 隔离系统和程序
- 安装多个OS
- 采用不同文件系统
1.2分区方式
两种分区方式:MBR,GPT
1.2.1MBR分区
MBR:Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T
划分分区的单位:
CentOS 5 之前按整柱面划分
CentOS 6 版本后可以按Sector划分
0磁道0扇区:512bytes
446bytes: boot loader
启动相关 64bytes:分区表,其中每16bytes标识一个分区
2bytes: 55AA
MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)
MBR分区:主和扩展分区对应的1--4,/dev/sda3,逻辑分区从5开始,/dev/sda5
1.2.2GPT分区
GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持8Z( 512Byte/block )64Z ( 4096Byte/block)
使用128位UUID(Universally Unique Identifier) 表示磁盘和分区 GPT分区表自动备份在头和尾两份, 并有CRC校验位
UEFI (Unified Extensible Firmware Interface 统一可扩展固件接口)硬件支持GPT,使得操作系统可以 启动
GPT分区结构分为4个区域:
- GPT头
- 分区表
- GPT分区
- 备份区域
管理分区
列出快设备
lsblk [root@centos7~]$lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 100G 0 part /
├─sda3 8:3 0 50G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 4G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sr0 11:0 1 9.5G 0 rom
创建分区命令
fdisk 管理MBR分区 gdisk 管理GPT分区 parted 高级分区操作,可以是交互或非交互方式
重新设置内存中的内核分区表版本,适合于除了CentOS 6 以外的其它版本 5,7,8
partprobe
2.1分区工具fdisk和gdisk
fdisk -l [-u] [device...] 查看分区
fdisk [device...] 管理MBR分区
gdisk [device...] 类fdisk 的GPT分区工具
子命令
p 分区列表
t 更改分区类型
n 创建新分区
d 删除分区
v 校验分区
u 转换单位
w 保存并退出
q 不保存并退出
查看内核是否已经识别新的分区
cat /proc/partations
Centos7,8同步分区表
partprobe
Centos6 通知内核重新读取硬盘分区表
cnetos6 创建完分区后必须执行以下命令才能让内核发现新建的分区,进行编辑使用
partx -a /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
#示例:
[root@centos6 ~]#partx -a /dev/sda
磁盘常见工具
2.2.1查看工具df
文件系统空间实际真正占用等信息的查看工具
df [OPTION]... [FILE]...
常用选项
-H 以10为单位
-T 文件系统类型
-h human-readable
-i inodes instead of blocks
-P 以Posix兼容的格式输出
2.2.2查看某目录总体空间实际占用状态du
显示指定目录下面各个子目录的大小,单位为KB
du [OPTION]... DIR
常用选项
-h human-readable
-s summary
--max-depth=# 指定最大目录层级
-x, --one-file-system #忽略不在同一个文件系统的目录
2.2.3工具dd
dd 命令:convert and copy a file
格式:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#
常用选项:
if=file 从所命名文件读取而不是从标准输入
of=file 写到所命名的文件而不是到标准输出
ibs=size 一次读size个byte
obs=size 一次写size个byte
bs=size block size, 指定块大小(既是是ibs也是obs)
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 复制n个bs
conv=conversion[,conversion...] 用指定的参数转换文件
conversion 转换参数:
ascii 转换 EBCDIC 为 ASCII
ebcdic 转换 ASCII 为 EBCDIC
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
nocreat 不创建输出文件
noerror 出错时不停止
notrunc 不截短输出文件
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
fdatasync 写完成前,物理写入输出文件
示例
#备份MBR
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1 #破坏MBR中的bootloader
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446 #有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有
fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,实现如下
dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc #将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/dev/sdy #将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx of=/path/to/image #备份/dev/sdx全盘数据,并利用gzip压缩,保存到指定路径
dd if=/dev/sdx | gzip >/path/to/image.gz #将备份文件恢复到指定盘
dd if=/path/to/image of=/dev/sdx #将压缩的备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx #将内存里的数据拷贝到root目录下的mem.bin文件
dd if=/dev/mem of=/root/mem.bin bs=1024 #拷贝光盘数据到root文件夹下,并保存为cdrom.iso文件
dd if=/dev/cdrom of=/root/cdrom.iso #销毁磁盘数据
dd if=/dev/urandom of=/dev/sda1 #通过比较dd指令输出中命令的执行时间,即可确定系统最佳的block size大小
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/dev/zero of=/root/1Gb.file bs=2048 count=500000
dd if=/dev/zero of=/root/1Gb.file bs=4096 count=250000 #测试硬盘写速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000 #测试硬盘读速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
挂载设备
- 分区创建完成,设定其系统文件格式。文件系统文档
- 进行挂载,使用
3、挂载
挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入 口的行为
卸载:为解除此关联关系的过程
把设备关联挂载点:mount Point
挂载点下原有文件在挂载完成后会被临时隐藏,因此,挂载点目录一般为空 进程正在使用中的设备无法被卸载
3.1挂载文件系统mount
格式
mount [-fnrsvw] [-t vfstype] [-o options] device mountpoint
device:指明要挂载的设备 设备文件:例如:/dev/sda5
卷标:-L 'LABEL', 例如 -L 'MYDATA'
UUID: -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
伪文件系统名称:proc, sysfs, devtmpfs, configfs mountpoint:挂载点目录必须事先存在,建议使用空目录
mount常用命令选项
-t fstype 指定要挂载的设备上的文件系统类型,如:ext4,xfs
-r readonly,只读挂载
-w read and write,读写挂载,此为默认设置,可省略
-n 不更新/etc/mtab,mount不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
-L 'LABEL' 以卷标指定挂载设备
-U 'UUID' 以UUID指定要挂载的设备
-B, --bind 绑定目录到另一个目录上
-o options: (挂载文件系统的选项),多个选项使用逗号分隔
async 异步模式,内存更改时,写入缓存区buffer,过一段时间再写到磁盘中,效率高,但不安全
sync 同步模式,内存更改时,同时写磁盘,安全,但效率低下
atime/noatime 包含目录和文件
diratime/nodiratime 目录的访问时间戳
auto/noauto 是否支持开机自动挂载,是否支持-a选项
exec/noexec 是否支持将文件系统上运行应用程序
dev/nodev 是否支持在此文件系统上使用设备文件
suid/nosuid 是否支持suid和sgid权限
remount 重新挂载
ro/rw 只读、读写
user/nouser 是否允许普通用户挂载此设备,/etc/fstab使用
acl/noacl 启用此文件系统上的acl功能
loop 使用loop设备
_netdev 当网络可用时才对网络资源进行挂载,如:NFS文件系统
defaults 相当于rw, suid, dev, exec, auto, nouser, async
挂载规则
- 一个挂载点同一时间只能挂载一个设备
- 一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏
- 一个设备可以同时挂载到多个挂载点
- 通常挂载点一般是已存在空的目录
3.2卸载文件系统umount
卸载时:可使用设备,也可使用挂载点
umount 设备名|挂载点
3.4查看挂载情况
查看挂载
#通过查看/etc/mtab文件显示当前已挂载的所有设备
mount
#查看内核追踪到的已挂载的所有设备
cat /proc/mounts
扩充
查看挂载点情况
findmnt MOUNT_POINT|device 查看正在访问指定文件系统的进程
lsof MOUNT_POINT
fuser -v MOUNT_POINT 终止所有在正访问指定的文件系统的进程
fuser -km MOUNT_POINT
3.5永久挂载
将挂载保存到 /etc/fstab 中可以下次开机时,自动启用挂载
/etc/fstab格式帮助:man 5 fstab
每行定义一个要挂载的文件系统,,其中包括共 6 项
- 要挂载的设备或伪文件系统
设备文件
LABEL:LABEL=""
UUID:UUID=""
伪文件系统名称:proc, sysfs
- 挂载点:必须是事先存在的目录
- 文件系统类型:ext4,xfs,iso9660,nfs,none
- 挂载选项:defaults ,acl,bind
- 转储频率:0:不做备份 1:每天转储 2:每隔一天转储
- fsck检查的文件系统的顺序:允许的数字是0 1 2
0:不自检 ,1:首先自检;一般只有rootfs才用 2:非rootfs使用
添加新的挂载项,需要执行下面命令生效
mount -a
Linux磁盘分区-mount挂载的更多相关文章
- Linux磁盘分区和挂载
Linux磁盘分区和挂载 分区 分区的方式: mbr分区 最多支持4个主分区 系统只能安装到主分区上 扩展分区要占用一个主分区 MBR最大支持2TB,但拥有最好的兼容性 gtp分区 支持无线多个主分区 ...
- Linux 实用指令(7)--Linux 磁盘分区、挂载
目录 Linux 磁盘分区.挂载 1 分区基础知识 1.1 分区的方式: 1.2 windows 下的磁盘分区 2 Linux分区 2.1 原理分析 2.2 磁盘说明 2.3 使用lsblk指令查看当 ...
- Linux磁盘分区、挂载、查看文件大小
快速查看系统文件大小命令 du -ah --max-depth=1 后面可以添加文件目录 ,如果不添加默认当前目录. 下面进入正题~~ 磁盘分区.挂载 引言: ①.分区的方式 a)mbr分区: 最多支 ...
- Linux 磁盘分区和挂载
目录 Linux 磁盘分区和挂载 windows 下的分区 磁盘管理 相关命令 分区及挂载实现步骤 添加硬盘 分区步骤 步骤 挂载步骤 卸载分区步骤 补充: Linux 磁盘分区和挂载 windows ...
- linux磁盘分区、挂载、查看
实战: 34 查看本机所有磁盘 fdisk -l 35 查看磁盘挂载情况 lsblk -f 36 39: ...
- Linux磁盘分区,挂载
分区基础知识 分区的方式: 1) mbr分区: 1.最多支持四个主分区 2.系统只能安装在主分区 3.扩展分区要占一个主分区 4.MBR最大只支持2TB,但拥有最好 ...
- linux 磁盘分区和挂载看这一篇就够了
Linux fdisk 和 mount 命令操作指南,linux磁盘管理.新增磁盘.挂载新硬盘(linux运维入门) 首先列出文件系统的整体磁盘空间使用情况.可以用来查看磁盘已被使用多少空间和还剩余多 ...
- Linux 磁盘分区、挂载
一.分区介绍 mbr分区: 1.最多支持四个主分区 2.系统只能安装在主分区上 3.扩展分区要占一个主分区 4.mbr最大只支持2TB,但拥有最好的兼容性 gpt分区: 1.支持无限多个主分区(但操作 ...
- Linux磁盘分区与挂载
原理介绍 在Linux世界中,一切皆目录,每一块硬盘分区对应Linux的一个目录,所以我们可以通过管理目录来管理硬盘分区,而将硬盘分区与文件目录关联的操作就成为"挂载"[mount ...
随机推荐
- 学习Apache(六)
Apache 是一款使用量排名第一的 web 服务器,LAMP 中的 A 指的就是它.由于其开源.稳定.安全等特性而被广泛使用.下边记录了使用 Apache 以来经常用到的功能,做此梳理,作为日常运维 ...
- 如何将springboot工程打包成war包并且启动
将项目打成war包,放入tomcat 的webapps目录下面,启动tomcat,即 可访问. 1.pom.xml配置修改 <packaging>jar</packaging> ...
- 打败算法 —— 环形链表 II
本文参考 出自LeetCode上的题库 -- 环形链表II,哈希表和快慢指针两种解法都需要O(n)的时间,但快慢指针仅占用O(1)的空间 https://leetcode-cn.com/problem ...
- jsp报错问题之“使用jstl的c标签choose报错Illegal text inside "c:choose" tag问题”
一.报错 [bessky_it][ERROR][2022-03-25 17:19:07] | PLATFORM | ):[c]鍜孾/com.bessky.pss.portal/purchase/sam ...
- Flex布局在小程序的使用
一篇旧文,上手小程序时做的一些探索 Flex布局是一种十分灵活方便的布局方式,目前主流的现代浏览器基本都实现了对Flex布局的完全支持.而在微信小程序中,IOS端使用的渲染引擎WKWebView和安卓 ...
- APK安装流程概述
pre { background: none left top repeat scroll rgba(0, 0, 0, 0); border: 1px solid rgba(0, 0, 0, 1); ...
- SpringBoot 项目搭建(详细介绍+案例源码)
SpringBoot 项目搭建 SpringBoot 项目整合源码 SpringBoot 项目整合 一.项目准备 1.1 快速创建 SpringBoot 项目 1.2 标准项目结构图如下 1.3 添加 ...
- Java中的反射原理以及简单运用(原理+例子)
@ 目录 学习总结 1. 为什么要使用反射 2. 反射的概念 3. Java反射加载过程 4. 反射优缺点 5. 字节码对象理解 6. 获取字节码对象(.class)的三种方式 7. 反射常用API ...
- Git使用方法以及出现的bug解决方案
git常用命令 1.本地库初始化: git init 2.设置签名 (1)项目级别(项目里面) git config user.name xxx git config user.email xxx ( ...
- 常见的JVM 面试题
1.讲一讲JVM的跨平台与跨语言 跨平台 我们写的一个类,在不同的操作系统上(Linux.windows.Mac OS)执行,效果是一样的.这就是JVM的跨平台性. 跨语言 JVM只识别字节码,JVM ...