linux系统磁盘硬盘逻辑卷分区介绍

上周有个客人问我Linux系统中的磁盘、分区和逻辑卷管理是怎么一回事,我就给他详细解释了一下。

首先,咱们得知道磁盘是啥。
在Linux里,磁盘是通过设备文件来标识的,比如/dev/sdX或者/dev/hdX,X是字母,比如a、b。
你可以用fdisk-l命令来查看磁盘的信息,包括容量、接口类型和分区表格式。

说到分区,这就是把磁盘分成几个独立的小块,每个分区就像是一个小磁盘。
Linux里最多可以有4 个主分区,还有一个扩展分区,扩展分区里可以放逻辑分区。
逻辑分区就是放在扩展分区里的,可以用来存储用户数据、备份啥的。

然后是逻辑卷管理(LVM),这个就比较高级了。
LVM是在物理分区的基础上再建一层逻辑层,这样就可以动态地管理存储了。
LVM里有物理卷(PV)、卷组(VG)和逻辑卷(LV)。
物理卷就是初始化成LVM格式的磁盘或分区,卷组是由多个物理卷组成的存储池,逻辑卷就是从卷组里分配出来的可扩展存储单元。

LVM的好处就是可以动态调整存储大小,跨磁盘聚合,还能做快照备份。
比如,如果你想扩展一个逻辑卷,可以用lvextend命令。

最后,LVM的应用场景也很多,比如多系统共存、数据隔离、服务器环境等。
通过LVM,Linux系统可以隐藏硬件细节,提供高效的存储管理解决方案。
反正你看着办,如果你对存储管理有更高要求,LVM是个不错的选择。
我还在想这个问题,LVM的具体实现细节和优化策略,你可以再深入了解一下。

Linux内核--Ext2文件系统及磁盘布局

Ext2 啊...这个文件系统...挺早的东西了。

Linux内核刚开始...Minix用着...那玩意儿不行啊。
磁盘空间就6 4 MB,文件名还老限制...1 1 个字节。
1 9 9 2 年出了个Ext...比Minix好点,但也不行。
1 9 9 7 年才有Ext2 ...RedHat那时候都用它了。
现在Ext4 都有了...Ext2 的代码还在内核里...就因为它简单...学文件系统架构...挺好入门。

它怎么设计...把磁盘分成小块...叫逻辑块,一般是4 KB。
然后呢...这些块再组合起来...叫块组。
块组是管理的基本单位。
一个块组里...有啥呢?元数据啊...位图啊...inode表啊...还有数据块。
这样...好管理...也知道块的状态。

磁盘怎么排布呢?整个盘...分成好多个块组。
第一个块组...特别重要...引导块啊...超级块啊...块组描述符啊...位图啊...inode表啊...数据块啊...全都有。
后面的块组呢?就简化点了...一般就位图...inode表...数据块...有时候会放超级块的备份。
这样...万一第一个块组坏了...还能恢复。

关键的东西...都得知道。

引导块...就是启动的时候...BIOS要读的。
只在没有日志的时候用。
存着启动的程序...负责启动。

超级块...这玩意儿重要。
文件系统的所有信息...都在这儿。
多少块...多少inode...支持啥特性...维护信息...都在这儿。
第一个逻辑块放着...就是盘的开始。
为了安全...后面每个块组...开头都复制一个。
万一主超级块坏了...还能用备份的。

块组描述符...这东西...记录一个块组的结构。
说这个块组里...哪些块是数据块...哪些是inode...还剩多少可用。
它自己...也占一个块。

位图啊...有两种。
数据块位图...和inode位图。
都是用位...0表示没用到...1 表示用掉了。
数据块位图...管理数据块。
多少块被占了...多少闲着。
inode位图...管理inode。
哪些inode用了...哪些没用。
它们的大小...得看逻辑块多大。
比如4 KB块...一个位图能管4 09 6 个块。
如果块变大...比如8 KB...那能管的就更多了。

inode表...这东西...存文件的元数据。
文件多大...谁有权限...啥时候创建的...还有...数据块在哪儿...都在这儿。
找文件的时候...先看文件夹...名字对应哪个inode...然后根据inode...找到它所在的块组...再找到inode表...最后才找到数据块。

但是Ext2 有缺点。
最明显的是inode。
一个块组里...inode的数量是固定的。
默认4 KB块...一个块组大概能放3 2 7 6 8 个inode。
如果你存很多很多小文件...每个文件一个inode...那很快就会用完。
就算磁盘空间还多...也存不下了。
所以...用Ext2 ...存小文件多...要小心inode用完。

还有就是...Ext2 没有日志。
突然断电...或者系统崩溃...元数据可能会坏。
那只能用fsck工具...慢慢修复。
这很慢...还可能数据丢失。
Ext3 和Ext4 就解决了这个问题...加了日志...安全多了。

性能方面...频繁读写小文件...可能也会慢。
因为每次都要找inode...查表...这样折腾多了...就卡。

总之...Ext2 是个老文件系统...简单...但用着有局限。
现在...Ext4 更常用...功能也多。
不过...学学Ext2 ...还是不错的。

Windows系统下如何格式化linux系统中的硬盘分区

直接说:格式化Linux分区在Windows下能干。

上周刚处理一个。
先进磁盘管理。
右键这台电脑,选管理,点存储,点磁盘管理。

找Linux分区。
非Windows支持的分区,比如ext系列。
显示未分配或未识别。

右键选分区,点删除卷。
会清空所有数据,备份重要文件。

右键空白分区,选新建简单卷。
下一步,设置大小,全部分区默认。

分个驱动器号,比如D:。
完成格式化,选NTFS。

最后看磁盘管理,确认分区变成NTFS。

注意备份。
删了恢复不了。
如果删了/boot分区,可能其他系统没法启动。

加密分区?比如LUKS?常规删除可能不管用。