Linux的磁盘存储管理实操——(上)

一、Linux的设备文件分类

Linux的设备文件分类

1、在Linux系统中设备文件是用来与外接交互的接口,它将内核中的硬件设备与文件系统关联起来,让用户可以像操作普通文件一样来操作硬件设备,同时也为开发者提供了方便而强大的应用程序接口。

2、Linux的设备都以文件的形式存在/dev中,根据设备文件的不同,又分为【字符设备文件】和块【设备文件】。

序号Linux的设备文件分类说明
1字符设备文件

1、字符设备文件使用【c】作为标识;

2、字符设备文件的存取是以字符流的方式来进行的,一次传送一个字符(常见的字符设备有:终端【TTY】、打印机、鼠标、键盘、绘图仪等);字符设备文件有时也叫做【raw】设备文件;

2块设备文件

1、块设备文件使用【b】作为标识;

2、块设备文件是以数据块的方式来存取的(常见的设备有:硬盘、U盘等)【即:系统通过块设备文件存取数据的时候,先从内存中的buffer中读或写数据;而不是直接传送数据到物理磁盘,这种方式有效的提高了磁盘的I/O性能】

二、Linux的磁盘存储管理

 2.1、MBR与GPT

MBR与GPT
序号MBRGPT
1MBR(Master Boot Record)主引导记录;它由三部分组成【主引导程序】【硬盘分区表】【硬盘有效标志】,共占用512字节GPT(GUID Partition Table)全局唯一标识分区表,是一个物理硬盘的分区结构,它用来替代BIOS中的主引导记录分区表(MBR)
2

1、主引导程序(main boot loader)占用446个字节;

2、硬盘分区表(disk partition table)简称DPT,占用64个字节(主要用于对硬盘分区有多少以及每一个分区的大小都记录在这里);

3、硬盘有效标志(magic number)占用2个字节,固定为55AA

3

MBR的特点:

由于MBR分区的分区表保存在硬盘的第一个扇区,且只有64个字节大小,所以最多只能有四个表项即:我们只能把硬盘分为4个主分区;或者分成小于等于3个主分区在加上一个扩展分区

GPT的特点:

《1》对分区的数量没有限制;

《2》GPT可管理硬盘大小最大为18EB,几乎是无限大了;

4

MBR分区的优缺点:

《1》优点:MBR的分区简单,支持度高,很多操作系统都可以从MBR分区的硬盘启动。

《2》缺点:MBR分区不能识别大于2T的硬盘空间,且不能有大于2T的分区。

GPT分区缺点:

《1》要从GPT分区的硬盘启动,需要UEFI主板、硬盘使用GPT分区、操作系统支持GPT这三个硬性条件。

《2》必须使用64位系统。

传统BIOS主要支持MBR引导,UEFI则是取代传统BIOS,因为UEFI加入了对新硬件的支持。

 2.2、BIOS与UEFI

BIOS与UEFI
序号BIOSUEFI
1BIOS(Basic Input Output System)基本输入输出系统;是最古老的一种系统固件和接口,采用汇编语言进行编程,并使用中断来执行输入和输出操作,在它刚出现的时候就确定了个人计算机生态系统的基本框架

UEFI(Unified Extensible Firmware Interface)统一可扩展固件接口;它定义了一种在操作系统和平台固件之间的接口标准。

这种接口用于操作系统自动从预启动的操作环境(即:在系统启动之后,但在操作系统开始运行之前)加载到操作系统上,从而使开机程序化繁为简,节省时间。

注意:准确的说UEFI是一种规范,不同厂商根据该规范对UEFI的实现,并做出个人电脑固件后,该固件就是UEFI固件

UEFI比BIOS先进的三个方面:

《1》可读取分区表;

《2》可访问某些特定文件系统中的文件;

《3》可执行特定格式的代码。

可以说UEFI更像是一个简易的操作系统。

UEFI的目标是取代传统BIOS,它不支持MBR模式,仅支持GPT格式。

不过,近年出现的UEFI主板,采用UEFI+BIOS共存模式,并且BIOS中集成UEFI启动项。

 2.3、Linux操作系统对GPT+UEFI支持列表

注意:下表中【1=BIOS+MBR】、【2=UEFI+GPT】;

简单总结一下就是:

《1》红帽系的Linux操作系统Centos6.X之下的(如Centos5.x、Centos4.x)64位系统不支持【UEFI+GPT】作为系统盘,只支持【BIOS+MBR】做系统盘。

《2》红帽系的Linux操作系统Centos6.X及其更高版本(Fedora18及其更高版本)的64位系统支持【UEFI+GPT】【BIOS+MBR】这两种做系统盘(必须要使用UEFI)和数据盘。

《3》德班系的Linux操作系统Debian8.0及其更高版本(Ubuntu13.04及其更高版本)的64位系统支持【UEFI+GPT】【BIOS+MBR】这两种做系统盘(必须要使用UEFI)和数据盘。

《4》SUSE的Linux系统是在SUSE Linux Enterprise Server 11 SP3及其更高版本的64位系统支持【UEFI+GPT】【BIOS+MBR】这两种做系统盘(必须要使用UEFI)和数据盘。

《5》FreeBSD的系统是在FreeBSD10.1及其更高版本的64位系统支持【UEFI+GPT】【BIOS+MBR】这两种做系统盘(必须要使用UEFI)和数据盘。

 2.4、使用fdisk工具划分磁盘分区实操

使用fdisk工具划分磁盘分区

fdisk是Linux下的一款功能强大的磁盘分区管理工具(既可以观察硬盘的使用情况;也可以对磁盘进行分割操作)fdisk工具不支持GPT格式分区。且fdisk工具对分区有大小限制(最大只能划分小于2T的磁盘)

Linux下类似的磁盘分区管理工具还有【cfdisk】、【parted】等,parted是一个功能更为强大的分区工具,它支持GPT格式分区。

序号查询命令说明
1fdisk -l可查看Linux中所有的磁盘分区信息;
2fdisk -l device

可查看Linux中指定磁盘的分区信息;

(如只查看/dev/sdb设备的分区信息命令【fdisk -l /dev/sdb】)

3fdisk -h可查看fdisk工具的使用帮助信息;

fdisk的使用分为两个部分【查询】和【交互操作】可以通过【fdisk device】进入指定磁盘的分区命令交互界面

fdisk的磁盘分区命令交互界面命令说明如下(如:进入/dev/sdb磁盘设备命令是【fdisk /dev/sdb】)

序号磁盘分区交互命令说明
1d删除一个分区
2l列出已知的分区类型
3m显示fdisk每个交互命令的详细含义
4n增加一个新的分区
5p显示分区信息
6t改变分区类型
7F列出未分区的空闲区
8q

退出交互操作,不保存操作的内容

9w写分区表信息写入到硬盘,保存操作退出

 

        通过使用【fdisk -l】【df -h】这两个命令我们可以查看到当前的【/dev/sdb】设备还没有进行对应的分区和挂载使用,所以我们接下来就对【/dev/sdb】设备进行分区实操与挂载:

#使用fdisk命令对【/dev/sdb】新硬盘进行分区操作实战#1-使用fdisk工具打开【/dev/sdb】硬盘设备命令
fdisk /dev/sdb#2-查看fdisk分区所有命令选项及其说明帮助
m#2-查看【/dev/sdb】硬盘设备的分区信息命令
p#3-添加新分区
n#4-创建一个主分区操作(按下p表示主分区,分区号不用填写默认即可,扇区号也不用填写默认即可,磁盘大小需要使用+size{K,M,G,T,P}来设置【如设置这个分区的大小为2g则输入+2g即可】)主分区只能创建3个,其他的就是拓展分区了#5-创建扩展分区是在创建第四个分区的时候创建的(分区号、扇区号不用填写,且磁盘大小也不用填写【表示将剩下的所有磁盘空间都作为扩展分区】)#6-创建扩展分区的逻辑分区操作所使用的空间总容量是扩展分区的容量(分区号、扇区号都不用操作默认即可,磁盘大小根据自己需要设置也是一样的使用+size{K,M,G,T,P}来设置【如设置这个分区的大小为1g则输入+1g即可】;需要注意的是这里设置的逻辑分区大小不能够大于扩展分区所拥有的总空间)#7-分区完成后先查看磁盘分区情况,若没有问题则输入w保存分区信息
p
w#8-需要对所有新创建的分区逐一进行格式化(格式化的格式一般选择ext4或者xfs【我们这里使用ext4格式对/dev/sdb1进行格式化】)
#【需要特别注意第四个分区是扩展容器不能被格式化】
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2
mkfs.ext4 /dev/sdb3
mkfs.ext4 /dev/sdb5
mkfs.ext4 /dev/sdb6#9-逐一挂载格式化好的分区到指定的路径下(这里的mount挂载分区时不用单独指定格式,会自动识别)
#手动指定/dev/sdb1分区的格式为ext4且挂载到/mnt路径下
mount -t ext4 /dev/sdb1 /mnt
#直接将/dev/sdb1设备挂载到默认的/mnt目录下
mount /dev/sdb1 /mnt#10-创建/data1目录且将/dev/sdb2分区挂载到该目录下(剩下的其他分区可根据需要自行挂载)
mkdir /data1
mount /dev/sdb2 /data1
#如果需要对指定分区的类型进行修改(则操作如下)#1-使用fdisk命令进入指定磁盘(如:/dev/sdb)
fdisk /dev/sdb#2-查看磁盘的分区情况
p#3-查看当前磁盘支持的所有类型命令
l#4-修改磁盘类型(输入t进入修改模式,输入磁盘分区编号【如修改分区5的类型】,输入类型代码【如修改为HPFS/NTFS/exFAT】)命令
t
5
7#5-查看磁盘的分区情况
p#6-若修改的指定磁盘分区类型正确则保存修改后退出命令
w

        注意:如果需要使用fdisk对磁盘进行分区等实操(最好是新创建一个磁盘进行操作),我们可以在虚拟机(如VMware对应的Linux系统启动前先编辑新增一个硬盘就可以了,在进行如下操作前最好是系统关机后再操作)。

        选中需要新增硬盘的Linux系统-->点击鼠标右键【设置】-->【硬件】-->【添加】-->【硬盘】-->【下一步】-->【SCSI(推荐)】-->【下一步】-->【创建新虚拟磁盘】-->【下一步】-->【输入自己需要设置的硬盘大小】-->【将虚拟磁盘存储为单个文件】-->【下一步】创建完成后,关闭该虚拟机设置界面。然后重启该Linux系统。在VMware虚拟机上给Linux系统新增一块硬盘的详细操作如下图所示:

 2.5、使用parted工具划分磁盘分区实操——推荐使用

使用parted工具划分磁盘分区

parted磁盘管理工具可划分GPT格式分区,且对划分的磁盘分区没有大小限制;更适合现在磁盘的情况(目前磁盘一般都4T起步了);

如果系统没有parted命令,则可以执行【yum -y install parted】命令直接安装

序号parted查询命令说明
1parted -l列出所有块设备的分区配置
2parted -h列出关于parted工具的参数内容及其说明信息
parted的使用分为两个部分【查询】和【交互操作】可直接输入【parted】进入磁盘的分区命令交互界面(默认进入第一块磁盘)
序号parted交互模式常用参数说明
1

print

查看磁盘的分区信息,可简写为p;该命令有三个选项:

《1》devices 显示系统的所有块设备

《2》free 显示当前磁盘的所有信息(且显示磁盘的剩余空间)

《3》list,all 显示所有磁盘信息

2select

选择需要编辑的设备(如切换到/dev/sdb设备命令:select /dev/sdb)

【因为直接输入parted进入命令交互模式后默认使用的是系统第一块磁盘;若系统有多块硬盘,就需要使用这个select命令切换了】

3help查看parted的交互命令及其含义
4rm删除指定数字编号的分区(如删除分区1命令是:rm 1)
5mklabel

创建磁盘的分区表结构(是设置msdos还是gpt格式)【如创建为gpt格式命令为:mklabel gpt】;

6mkpart

创建新分区

语法【mkpart 分区类型 [文件系统类型] 起始点 结束点】;

《1》分区类型主要有【primary(主分区)】【extended(扩展分区)】【logical(逻辑区)】;

《2》文件系统类型主要有【xfs、ext2、ext3、ext4、fat16、fat32、hfs、hfs+、linux-swap、ntfs 或 reiserfs】;该参数是可选的,可以不用填写。

《3》起始点:表示分区的起始位置

《4》结束点:表示分区的结束位置

7quit保存退出parted的命令交互模式,可简写为q(即:保存在命令交互模式的操作后再退出)
对新创建的分区进行格式化与挂载操作
1需要对所有新创建的分区逐一进行格式化

《1》格式化的格式一般选择ext4或者xfs【我们这里使用ext4格式对/dev/sdb1进行格式化】;

《2》对分区格式化命令:

#我们这里分别/dev/sdb设备的5个分区进行格式化
mkfs.xfs -f /dev/sdb1
mkfs.xfs -f /dev/sdb2
mkfs.xfs -f /dev/sdb3
mkfs.xfs -f /dev/sdb4
mkfs.xfs -f /dev/sdb5
2需要对所有新创建的分区格式化后进行逐一挂载

创建/data1目录且将/dev/sdb1分区挂载到该目录下(剩下的其他分区可根据需要自行挂载)

mkdir /data1
mount /dev/sdb1 /data1mkdir /data2
mount /dev/sdb2 /data2mkdir /data3
mount /dev/sdb3 /data3mkdir /data4
mount /dev/sdb4 /data4mkdir /data5
mount /dev/sdb5 /data5

三、其他资料

分区 - ArchWikihttps://wiki.archlinuxcn.org/wiki/Partitioning第 3 章 磁盘分区 | 管理存储设备 | Red Hat Enterprise Linux | 10 | Red Hat Documentationhttps://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/10/html/managing_storage_devices/disk-partitions

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90065.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内核bpf的实现原理

bpftrace能帮我们干什么?1、统计 tcp连接的生命时长、2、统计mysql执行一条sql语句的时间3、统计redis执行命令的时间、 4、对文件进行一次读或者写的时间。 常用命令: bpftrace -e Begin { printf("hello\n"); } bpftrace -l *enter_accep…

前端npm配置Nexus为基础仓库

步骤: 一、Nexus仓库配置 新增npm仓库,具体详解见 Nexus私有仓库配置,解释 注:Nexus的版本需要至少3.38以上,不然会出现npm install 时npm的审计功能报错,导致install失败。虽然在3.38以后不会报400错误&#xff0c…

数据结构 之 【排序】(直接插入排序、希尔排序)

目录 1.直接插入排序 1.1直接插入排序的思想 1.2直接插入排序的代码逻辑: 1.3 直接插入排序图解 1.4单趟排序代码(单个元素的排序逻辑) 1.5完整排序代码 1.6直接插入排序的时间复杂度与空间复杂度 1.7直接插入排序的优势 2.希尔排序(缩小增量排序) 2.1…

Laravel 后台登录 403 Forbidden 错误深度解决方案-优雅草卓伊凡|泡泡龙

Laravel 后台登录 403 Forbidden 错误深度解决方案-优雅草卓伊凡|泡泡龙一顿操作猛如虎,一看结果250,必须记录,必须记录,!今天弄了很久关于我们2023年的产品系统蜻蜓T会议系统专业版,然后终于搞好了密码也重…

Newline全场景方案闪耀2025中国智慧生活大会

7月15日 — 16日,由中国电子视像行业协会等权威机构指导的2025 CIC中国智慧生活大会在京召开。Newline作为视像协会PID分会副会长单位携全场景智慧办公解决方案亮相,首席营销官李宇鹏受邀出席领袖圆桌环节,与腾讯云、京东方、创维、TCL、小猿…

Edge浏览器地址栏默认搜索引擎设置指南

前言 Microsoft Edge 浏览器允许用户自定义地址栏默认搜索引擎,只是设置入口隐藏比较深,以版本 137.0.3296.83 (正式版本) (64 位)为例详细记录设置地址栏默认搜索引擎步骤: Edge 设置默认搜索引擎步骤 通过设置界面修改 打开Edge设置&#x…

Python eval函数详解 - 用法、风险与安全替代方案

Python eval函数详解 - 用法、风险与安全替代方案在Python中,eval() 是一个内置函数,用于解析并执行传入的字符串形式的表达式。它能够将字符串动态地转换为有效的Python代码并运行。虽然 eval() 功能强大,但其使用也伴随着潜在的安全风险。本…

Webpack5 新特性与详细配置指南

一、Webpack5 新特性 内置 Asset Modules(资源模块) 替代 file-loader、url-loader、raw-loader 等,统一资源处理方式。四种类型:asset/resource:导出文件 URL(等同 file-loader)。asset/inli…

笼子在寻找一只鸟:解读生活的隐形陷阱

想象一个闪闪发光的笼子,敞开着门,在世界中游荡,寻找一只鸟儿。这画面是不是有点奇怪?这是卡夫卡的格言“一个笼子在寻找一只鸟”带给我们的奇思妙想。通常,鸟儿自由翱翔,笼子静静等待,但卡夫卡…

低空经济展 | 约克科技携小型化测试设备亮相2025深圳eVTOL展

全球低空经济与eVTOL产业盛会——2025深圳eVTOL展,将于2025年9月23日至25日在深圳坪山燕子湖国际会展中心盛大启幕! 本届展会以“低空经济eVTOL航空应急救援商载大型无人运输机”为核心,预计汇聚200位发言嘉宾、500家顶尖展商及15,000位专业观…

数学专业转行做大数据容易吗?需要补什么?

高考志愿选择数学专业是一个面向未来的决定。数学作为基础学科,其严谨的逻辑训练和抽象思维能力培养,为后续专业发展提供了广泛的可能性。在数字化时代背景下,数学专业毕业生在数据科学、人工智能等领域的竞争优势明显。大学期间推荐考CDA数据…

物联网系统中-设备管理定义方法

物联网系统中的设备管理是指对联网物理设备进行全生命周期监控、配置、维护和优化的系统性过程。它涵盖了从设备接入到退役的各个环节,是物联网平台的核心能力,确保设备安全、稳定、高效地运行并产生价值。 以下是设备管理的详细定义与核心组成部分&…

java和ptyhon对比

📝 ​1. 语言特性对比​​维度​​Java​​Python​​语法风格​静态类型,需显式声明变量类型;代码冗长(需分号、大括号)动态类型,变量类型自动推断;简洁(缩进代替大括号&#xff0c…

UI测试解决方案TestComplete:助力小团队端到端测试全覆盖

面对软件多平台部署的复杂环境与有限的人力资源,小团队在追求端到端测试覆盖时常常陷入困境:既要确保应用在Windows、macOS、Linux及iOS、Android等碎片化平台上的稳定兼容,又要应对脚本重复编写耗时费力、测试效率低下的挑战,同时…

【Android】事件、绘制坐标系相关

一,事件坐标系即MotionEvent事件下发的坐标系,其坐标轴如下MotionEvent#offsetLocation方法可调整坐标原点,以影响MotionEvent#getX,MotionEvent#getY值,以匹配子View的坐标参考系,进而进行事件处理。注意&…

本地Linux服务器使用Docker快速部署SyncTV

文章目录前言1. Docker部署2. 简单使用演示3. 安装cpolar内网穿透4. 配置公网地址5. 配置固定公网地址前言 当想和异地恋人同步看恐怖片却因网络延迟错过惊悚瞬间,或与朋友组队观看电竞直播时无法实时吐槽…这些尴尬场景或许你都经历过。而SyncTV的存在正是为了解决…

搭建比分网服务器怎么选数据不会卡顿?

一、 体育比分网站的独特技术挑战体育比分网站是互联网服务中的"极限运动",面临三大技术高峰:数据实时性:NBA最后2分钟的比分延迟超过1秒就会流失用户流量脉冲:欧冠决赛时流量可能是平时的50-100倍全球覆盖:…

7月18日总结

bashupload / upload files from command line 远程文件包含 介绍一个上传文件的网站 bashupload.com 简介 借助bashupload.com,可以简朴地从下令行上传文件,剖析给其他的服务器,桌面和移动装备,最大支持25G。上传的文件会被保留…

【leetcode】3202. 找出有效子序列的最大长度(2)

文章目录题目题解题目 3202. 找出有效子序列的最大长度(2) 给你一个整数数组 nums 和一个 正 整数 k 。 nums 的一个 子序列 sub 的长度为 x ,如果其满足以下条件,则称其为 有效子序列 : (sub[0] sub[1]) % k (su…

Linux内核网络栈深度剖析:inet_connection_sock.c的服务器端套接字管理

引言 在Linux网络协议栈中,net/ipv4/inet_connection_sock.c是实现面向连接协议(如TCP)服务器端逻辑的核心文件。它承载了从端口绑定、连接接受到资源回收的全流程管理,是构建高并发网络服务的基石。本文将深入解析其关键机制和实现原理。 一、地址匹配:端口冲突检测的基…