过来,我告诉你个秘密:送给程序员男友最好的礼物,快教你对象学习磁盘分区啦!小点声哈,别让其他人学会了!

news2024/7/6 1:21:07

[原文连接:来自给点知识](过来,我告诉你个秘密:送给程序员男友最好的礼物,快教你对象学习磁盘分区啦!小点声哈,别让其他人学会了!)

再唱不出那样的歌曲

听到都会红着脸躲避

虽然会经常忘了我依然爱着你

----------------正文章分割线(前面都是乱七八糟)-------------------

1 整体流程

流程就是这样,我们这里使用virtualbox来进行测试

2 详细介绍-先有个磁盘

使用虚拟机创建一个磁盘,这里使用Virtualbox进行演示,这里可以看到增加了一个磁盘


开机后,我们使用fdisk命令 查看下新的磁盘,可以看到磁盘/dev/sdb 也就是新的磁盘已经出现了。(下面图就是怕你不看字加的)

[root@model ~]# fdisk -l

磁盘 /dev/sda:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a64a6

  设备 Boot     Start         End     Blocks   Id System
/dev/sda1   *        2048     2099199     1048576   83 Linux
/dev/sda2         2099200    16777215     7339008   8e Linux LVM
# 这里是新的磁盘2G
磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

# 这个是逻辑分区,包含操作系统和系统文件
磁盘 /dev/mapper/centos-root:6652 MB, 6652166144 字节,12992512 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

# 这个是虚拟内存交换分区,用于内存不足时的填空
磁盘 /dev/mapper/centos-swap:859 MB, 859832320 字节,1679360 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

4.3 分区磁盘

分区磁盘的命令 fdisk

1. 我们对磁盘进行分区,执行fdisk /dev/sdb
[root@model ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x20eb83d3 创建新的 DOS 磁盘标签。

2.让我们输入信息,我们输入n表示增加一个分区,会让我们选择什么类型的分区,我先选择主分区,再选择逻辑分区

命令(输入 m 获取帮助):n
Partition type:
  p   primary (0 primary, 0 extended, 4 free)
  e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-4194303,默认为 2048):
将使用默认值 2048

3.表示主分区给它1G
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB

4.继续分区,选择扩展分区(无法直接使用),然后把扩展分区分为逻辑分区就可以挂载使用了

命令(输入 m 获取帮助):n
Partition type:
  p   primary (1 primary, 0 extended, 3 free)
  e   extended
Select (default p): e
分区号 (2-4,默认 2):
起始 扇区 (2099200-4194303,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-4194303,默认为 4194303):
将使用默认值 4194303
分区 2 已设置为 Extended 类型,大小设为 1023 MiB
5.接下来分区为逻辑分区一个500M 一个521M
命令(输入 m 获取帮助):n
Partition type:
  p   primary (1 primary, 1 extended, 2 free)
  l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (2101248-4194303,默认为 2101248):
将使用默认值 2101248
Last 扇区, +扇区 or +size{K,M,G} (2101248-4194303,默认为 4194303):+500M
分区 5 已设置为 Linux 类型,大小设为 500 MiB

命令(输入 m 获取帮助):n
Partition type:
  p   primary (1 primary, 1 extended, 2 free)
  l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (3127296-4194303,默认为 3127296):
将使用默认值 3127296
Last 扇区, +扇区 or +size{K,M,G} (3127296-4194303,默认为 4194303):
将使用默认值 4194303
分区 6 已设置为 Linux 类型,大小设为 521 MiB
6.保存
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。

这里出现了这个分区:sdb1、sdb2、sdb5、sdb6

[root@model ~]# lsblk

NAME           MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda               8:0    0   8G  0 disk

├─sda1            8:1    0   1G  0 part /boot

└─sda2            8:2    0   7G  0 part

├─centos-root 253:0    0  6.2G  0 lvm /

└─centos-swap 253:1    0 820M  0 lvm [SWAP]

# 这里输出的是磁盘的四大分区,有主分区和逻辑分区

sdb               8:16   0   2G  0 disk

├─sdb1            8:17   0   1G  0 part

├─sdb2            8:18   0   1K  0 part

├─sdb5            8:21   0 500M  0 part

└─sdb6            8:22   0 521M  0 part

sr0              11:0    1 1024M  0 rom

4.3 格式化

执行格式化:使用mkfs.btrfs工具进行格式化成btrfs文件系统

1.可以看到这里挂载会出现提示 
[root@model ~]# mount /dev/sdb6 /root/sdb6/

mount: /dev/sdb6 写保护,将以只读方式挂载

mount: 未知的文件系统类型“(null)”

2.格式化系统,这里我们使用btrfs


[root@model ~]# mkfs.btrfs /dev/sdb6

btrfs-progs v4.9.1

See http://btrfs.wiki.kernel.org for more information.

Label:             (null)

UUID:               a00209ef-70b7-41da-a691-5c04aea8c247

Node size:          16384

Sector size:        4096

Filesystem size:    521.00MiB

Block group profiles:

Data:             single            8.00MiB

Metadata:         DUP              32.00MiB

System:           DUP               8.00MiB

SSD detected:       no

Incompat features: extref, skinny-metadata

Number of devices:  1

Devices:

  ID       SIZE PATH

   1   521.00MiB /dev/sdb6

4.4 挂载与使用

1.挂载数据盘 
[root@model ~]# mount /dev/sdb6 /root/sdb6/

2.可以看到这个文件的文件系统是btrfs,而且已经挂载到/root/sdb6上了


[root@model ~]# df -Th

文件系统               类型     容量 已用 可用 已用% 挂载点

devtmpfs               devtmpfs 908M     0 908M    0% /dev

/dev/sdb6               btrfs     521M   17M 440M    4% /root/sdb6

3.创建文件并使用,使用dd创建命令 

[root@model sdb6]# dd if=/dev/zero bs=4M count=100 of=cfile

dd: 写入<span data-raw-text-1692439234113="" "="" data-textnode-index-1692439234113="234" data-index-1692439234113="4331" data-index-len-1692439234113="4331" class="character" style="display: inline-block; text-indent: initial;">"cfile<span data-raw-text-1692439234113="" "="" data-textnode-index-1692439234113="234" data-index-1692439234113="4337" data-index-len-1692439234113="4337" class="character" style="display: inline-block; text-indent: initial;">" 出错: 设备上没有空间

记录了11+0 的读入

记录了10+0 的写出

41943040字节(42 MB)已复制,0.408459 秒,103 MB/秒

4.查询创建的文件

[root@model sdb6]# ll

总用量 450560

-rw-r--r--. 1 root root 419430400 8月  18 22:33 afile

-rw-r--r--. 1 root root  41943040 8月  18 22:33 cfile

5.可视化查看文件的大小,以M为单位展示

[root@model sdb6]# ls -alh

总用量 441M

drwxr-xr-x. 1 root root   20 8月  18 22:33 .

dr-xr-x---. 9 root root  245 8月  18 22:26 ..

-rw-r--r--. 1 root root 400M 8月  18 22:33 afile

-rw-r--r--. 1 root root 40M 8月  18 22:33 cfile

6.查看分的大小

[root@model sdb6]# df -Th

文件系统               类型     容量 已用 可用 已用% 挂载点

devtmpfs               devtmpfs 908M     0 908M    0% /dev

tmpfs                   tmpfs     919M     0 919M    0% /dev/shm

tmpfs                   tmpfs     919M   17M 903M    2% /run

tmpfs                   tmpfs     919M     0 919M    0% /sys/fs/cgroup

/dev/mapper/centos-root xfs       6.2G  1.5G  4.7G   25% /

/dev/sda1               xfs     1014M 150M 865M   15% /boot

tmpfs                   tmpfs     184M     0 184M    0% /run/user/0

/dev/sdb6               btrfs     521M 458M     0  100% /root/sdb6

[root@model sdb6]# cp -rp cfile d

cp: 写入<span data-raw-text-1692439234113="" "="" data-textnode-index-1692439234113="262" data-index-1692439234113="5406" data-index-len-1692439234113="5406" class="character" style="display: inline-block; text-indent: initial;">"d<span data-raw-text-1692439234113="" "="" data-textnode-index-1692439234113="262" data-index-1692439234113="5408" data-index-len-1692439234113="5408" class="character" style="display: inline-block; text-indent: initial;">" 出错: 设备上没有空间

cp: 扩展<span data-raw-text-1692439234113="" "="" data-textnode-index-1692439234113="263" data-index-1692439234113="5427" data-index-len-1692439234113="5427" class="character" style="display: inline-block; text-indent: initial;">"d<span data-raw-text-1692439234113="" "="" data-textnode-index-1692439234113="263" data-index-1692439234113="5429" data-index-len-1692439234113="5429" class="character" style="display: inline-block; text-indent: initial;">" 失败: 设备上没有空间

5. 以上用到的命令

1. 查看磁盘信息以及分区

fdisk -l

2. 查看磁盘挂载情况以及磁盘的文件系统

df -Th

3. 格式化分区

mkfs.btrfs /dev/sdb1

4. 创建一个400M大的cfile文件

dd if=/dev/zero bs=4M count=100 of=cfile

6. 小知识点

  1. 为什么需要逻辑分区,不能多一点主分区么?

    在传统的MBR(Master Boot Record)分区方案中,主分区的数量是有限的,最多只能有4个主分区。这是由于MBR分区表的限制,其中只有4个条目可用于主分区的定义。如果你只需要少量的分区,这可能足够了。

    然而,当你需要更多的分区时,逻辑分区就变得非常有用。逻辑分区是在扩展分区内创建的,而扩展分区本身占用了一个主分区条目。扩展分区可以容纳多个逻辑分区,因此你可以在扩展分区内创建更多的逻辑分区,以满足你的分区需求。

    逻辑分区的引入允许你在一个物理磁盘上创建更多的分区,这对于多系统安装、数据分区、多用户环境等情况非常有用。通过逻辑分区,你可以更好地组织和管理磁盘空间。

    需要注意的是,如果你使用的是新一代的分区方案,如GPT(GUID Partition Table),则没有主分区和逻辑分区的概念限制,可以创建更多的分区(最多可达到128个)。因此,对于使用GPT分区方案的磁盘,你可以更自由地创建分区,而不受主分区和逻辑分区数量的限制。

    总之,逻辑分区的存在是为了克服MBR分区表中主分区数量有限的限制,使你能够在一个物理磁盘上创建更多的分区。

    逻辑分区的存在是为了解决主分区数量有限的问题。在传统的主引导记录(MBR)分区方案中,主分区的数量被限制为最多四个。这是由于MBR分区表的结构所决定的。因此,如果需要在一个磁盘上创建更多的分区,就需要使用扩展分区和逻辑分区的组合。

    扩展分区是主分区中的一个特殊类型,它可以容纳多个逻辑分区。通过创建一个扩展分区,可以在其中划分多个逻辑分区,从而克服了主分区数量的限制。这样可以将磁盘划分为更多的逻辑部分,提供更多的灵活性和可扩展性。

    使用逻辑分区和扩展分区的好处包括:

    总而言之,逻辑分区和扩展分区的引入允许在主分区数量有限的情况下更好地管理磁盘空间,并提供更大的灵活性和可扩展性。

    1. 突破主分区数量限制:通过使用扩展分区,可以在一个磁盘上创建更多的分区,以满足不同的需求。

    2. 灵活的分区管理:逻辑分区可以根据需要创建、删除和调整大小,使得对磁盘空间进行灵活管理成为可能。

    3. 多系统安装:逻辑分区可以用于安装多个操作系统,每个操作系统都可以独立地位于一个逻辑分区中。

    4. 数据组织和隔离:通过将数据放置在不同的逻辑分区中,可以更好地组织和隔离数据,提高系统的可维护性和安全性。

  2. 处理fdisk 可以分区外还有哪些工具?

    • 使用parted -l命令查看系统中存在的磁盘和分区。

    • 选择要格式化的磁盘,例如/dev/sdb

    • 运行parted /dev/sdb命令来对磁盘进行分区操作。

    • 使用mklabel命令创建新的分区表(例如,使用mklabel gpt创建GPT分区表)。

    • 使用mkpart命令创建新的分区。

    • 使用print命令查看分区信息。

    • 运行mkfs命令来格式化新分区,例如mkfs.ext4 /dev/sdb1

    1. 使用parted命令:

  3. 为什么要格式化呢?

    1. 创建文件系统:格式化是在磁盘或分区上创建文件系统的过程。文件系统是一种用于组织和管理数据的结构,它定义了数据的存储方式、元数据的管理以及访问权限等信息。通过格式化,可以为磁盘或分区创建适当的文件系统,以便操作系统和应用程序能够正确地读取和写入数据。

    2. 清除数据:格式化磁盘或分区会将其上的所有数据全部删除。这可以用作一种数据消除的方法,确保旧数据无法被恢复。当你要出售、捐赠或重新分配磁盘时,进行格式化可以保护你的隐私和数据安全。

    3. 解决文件系统问题:有时,文件系统可能会出现问题,例如文件系统损坏、文件访问错误或文件系统不一致等。通过格式化,可以清除现有的文件系统并重新构建一个新的文件系统,以解决这些问题。这可以修复文件系统的错误,提高稳定性和可靠性。

    4. 更改文件系统类型:有时,你可能需要更改磁盘或分区的文件系统类型,以满足特定的需求或兼容性要求。通过格式化,可以将磁盘或分区从一个文件系统类型转换为另一个文件系统类型。

  4. Linux下有多种文件系统可供选择,以下是一些常见的文件系统及其对应的格式化命令:

    请注意,在执行格式化操作之前,请确保你备份了重要的数据,因为格式化将删除磁盘上的所有数据。另外,确保选择适合你需求的文件系统,考虑到性能、兼容性和特定功能的需求。

    • 格式化命令:mkfs.ntfs

    • 示例:mkfs.ntfs /dev/sdb1

    • 格式化命令:mkfs.fat -F 32

    • 示例:mkfs.fat -F 32 /dev/sdb1

    • 格式化命令:mkfs.reiserfs

    • 示例:mkfs.reiserfs /dev/sdb1

    • 格式化命令:mkfs.jfs

    • 示例:mkfs.jfs /dev/sdb1

    • 格式化命令:mkfs.btrfs

    • 示例:mkfs.btrfs /dev/sdb1

    • 格式化命令:mkfs.xfs

    • 示例:mkfs.xfs /dev/sdb1

    • 格式化命令:mkfs.ext3

    • 示例:mkfs.ext3 /dev/sdb1

    • 格式化命令:mkfs.ext4

    • 示例:mkfs.ext4 /dev/sdb1

    1. ext4文件系统:

    2. ext3文件系统:

    3. XFS文件系统:

    4. Btrfs文件系统:

    5. JFS文件系统:

    6. ReiserFS文件系统:

    7. FAT32文件系统:

    8. NTFS文件系统:

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

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

相关文章

linux学习(文件描述符)[13]

所以fork的时候函数执行完毕&#xff0c;但是数据还在缓冲区中未刷新。 所以会有父子两份数据 在fork&#xff08;&#xff09;之前ffush&#xff08;&#xff09;&#xff08;c语言的接口&#xff0c;刷新缓冲区&#xff09;fflush(stdout)&#xff0c;就不会有重复 缓冲区的…

公网远程连接Redis数据库详解

文章目录 1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一个固定tcp地址4.2 配置固定TCP地址4.3 使用固定的tcp地址连接 前言 洁洁的个人主页 我就问你有没有发挥&#xff0…

动态loading中转页

动态loading中转页 template <div class"loading"><div class"wavy"><!-- --i是自定义属性&#xff0c;可通过var函数调用 --><span style"--i: 1">登</span><span style"--i: 2">录</span>…

银行数据分析师面试题

回答&#xff1a; 1.自我介绍&#xff1a; "大家好&#xff0c;我是XXX&#xff0c;一名数据分析师。我有着对数据的热爱和深入的了解&#xff0c; 希望能够利用我的技能和知识为企业解决问题、做出有效的决策。 在过去的X年里&#xff0c;我一直从事数据分析相关的工作…

【福建事业单位-公基-法】02国家基本制度、公民的基本权利和义务 国家机构

【福建事业单位-公基-法】02国家基本制度 一、国家基本制度1.1 自然资源归属1.2 选举制度1.3 民族区域自治制度总结 二、公民的基本权利和义务1.1 权力1.2 义务总结 三、国家机构3.1 全国人民代表大会3.2全国人民代表大会常务委员会3.3 国家主席3.4国务院3.5监察委3.6 人民法院…

终于找到了这款最好的文献下载网站

在我们文献资源匮乏时&#xff0c;查找下载文献是件非常困难的事。在网上搜索了许多文献下载网站&#xff0c;不是文献资源太少&#xff0c;就是性价比太低&#xff0c;经过筛检比对终于找到了这款文献资源既丰富&#xff0c;又经济适用的文献下载网站。 这款文献下载网站就是…

6.Web后端开发【SpringBoot入门】

文章目录 1 SpringBoot快速入门1.1 Web分析 2. HTTP协议2.1 HTTP-概述2.1.1 介绍2.2.2 特点 2.2 HTTP-请求协议2.3 HTTP-响应协议2.3.1 格式介绍2.3.2 响应状态码 常见的相应状态码 3 WEB服务器3.1 服务器概述 1 SpringBoot快速入门 Spring的官网Spring Boot 可以帮助我们非常…

根据源码,模拟实现 RabbitMQ - 实现消息持久化,统一硬盘操作(3)

目录 一、实现消息持久化 1.1、消息的存储设定 1.1.1、存储方式 1.1.2、存储格式约定 1.1.3、queue_data.txt 文件内容 1.1.4、queue_stat.txt 文件内容 1.2、实现 MessageFileManager 类 1.2.1、设计目录结构和文件格式 1.2.2、实现消息的写入 1.2.3、实现消息的删除…

使用VS2015打开.pro文件后,编译报错

编译报错内容&#xff1a; MSB8036 找不到 Windows SDK 版本10.0.18362.0。请安装所需的版本的 Windows SDK 或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SD 方法&#xff1a; 1.右键点击 Solution上&#xff0c;在弹出的框中点击“Retarget…

高速PCB设计初学者容易犯的一些错误

高速PCB设计初学者容易犯的一些错误 硬件开发人员设计PCB时&#xff0c;应力求所设计PCB满足以下条件&#xff1a; PCB应首先满足规定的电气性能指标&#xff0c;原则上时电流越大&#xff0c;走线越宽&#xff1b;电压越大&#xff0c;线与线之间的距离越大&#xff1b;PCB应…

c#的委托事件

声明一个委托 //声明一个委托&#xff0c;指定该委托的每个实例都包含一个方法的引用&#xff0c;方法必须带有一个Int参数&#xff0c;并返回Void delegate void Add(int x); //定义委托基本上是定义一个新类&#xff0c;所以可以再定义类的任何相同地方定义委托&#xff0c;…

【Leetcode】103.二叉树的锯齿形层序遍历

一、题目 1、题目描述 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 示例1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[20,9],[15,7]]示例2: 输入:root = [1] 输…

response-headers,reqqust-headers 请求头大部分字段介绍以及总结

http标头的一些字段的介绍以及使用 公司大下周&#xff0c;趁着摸鱼的时间总结一下大部分标头的大概意思和用法。不是很全&#xff0c;但是大部分应该都在平时需要知道的一些标头的用意 1.Access-Control-Allow-Origin 通过设置这个属性表示可以被哪些网站进行跨域资源共享 …

MyBatis的入门级环境搭建及增删改查,详细易懂

目录 一.mybatis的简介 二.MyBatis的环境搭建 2.1 导入pom依赖 2.2 数据库文件导入连接 2.3 修改web.xml文件 2.4 安装插件 2.5 配置文件 2.5.1 mybatis.cfg.xml文件 2.5.2 generatorConfig.xml文件 2.6 最后测试生成代码 三.MyBatis的增删改查 3.1 写service类&#xff…

Linux服务器性能、网络监控

参考 1.Linux监控指令 2.Linux服务器上监控网络带宽的18个常用命令和linux带宽流量监控查看工具 3.Linux top指令 文章目录 Linux 命令行工具总体性能监控网络监控网络监控iftop磁盘IO使用情况和性能分析 iostat Linux 命令行工具 总体性能监控 $ top直接输入 top&#xff0c;…

msvcp120.dll丢失的解决方法,常见的解决dll问题方法

最近在使用一款常用的图像处理软件时&#xff0c;遇到了一个问题。每次我尝试打开软件时&#xff0c;都会弹出一个错误提示窗口&#xff0c;告诉我缺少msvcp120.dll文件。 系统提示无法启动此程序&#xff0c;因为计算机中丢失msvcp120.dll&#xff0c;尝试重新安装该程序以解…

C++头文件

C头文件 一般头文件特殊头文件windows.hbits/stdc.h 一般头文件 C头文件是一种包含预定义函数、类和变量声明的文件。它们通常用于在源代码文件中引入外部库或模块的功能。 头文件的作用是提供程序所需的声明信息&#xff0c;以便在源代码文件中使用这些声明。当你在源代码文…

【数据结构OJ题】设计循环队列

原题链接&#xff1a;https://leetcode.cn/problems/design-circular-queue/ 1. 题目描述 2. 循环队列的概念和结构 为充分利用向量空间&#xff0c;克服"假溢出"现象的方法是&#xff1a;将向量空间想象为一个首尾相接的圆环&#xff0c;并称这种向量为循环向量。…

面试之快速学习STL-容器适配器

1. 容器适配器 简单的理解容器适配器&#xff0c;其就是将不适用的序列式容器&#xff08;包括 vector、deque 和 list&#xff09;变得适用。 注意&#xff1a;默认使用的基础容器不代表一定只能用它&#xff0c;比如queue可以用deque&#xff0c;list。 如果你希望你的qu…

VS 运行编译通过,但代码下方 标红波浪线 问题

解决办法一&#xff1a;重新扫描 一次 解决方案&#xff0c; 就会去掉红线 方法2&#xff1a; VS 运行编译通过&#xff0c;但代码标红波浪问题解决办法_vs代码下面有波浪线_Start_Or_Out的博客-CSDN博客