ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux磁盘分区-mount挂载

2022-04-22 12:01:16  阅读:273  来源: 互联网

标签:mount 文件系统 dev dd Linux 挂载 磁盘分区 分区 设备


Linux磁盘分区类型

  磁盘存储术语CHS

  • head:磁头  磁头数=盘面数
  • track:磁道  磁道=柱面数
  • sector:扇区,512bytes
  • cylinder:柱面 1柱面=512*sector数/track*head数=512*63*255=7.84M 

  CentOS 5 之前版本 Linux 以柱面的整数倍划分分区,CentOS 6之后可以支持以扇区划分分区

  管理存储

  适用磁盘空间过程

  1. 设备文件
  2. 创建文件系统
  3. 挂载新的文件系统

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

 

标签:mount,文件系统,dev,dd,Linux,挂载,磁盘分区,分区,设备
来源: https://www.cnblogs.com/lyj1023/p/16178114.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有