Linux 磁盘分区详解

Linux 磁盘分区详解,第1张

Linux 系统中所有的硬件设备都是用文件的形式来表示和使用的,也就是说,如果你想使用某个硬件设备首先你就需要将其挂载到某个目录下面,通过对这个目录的 *** 作来 *** 作设备;如果不挂载,通过Linux系统中的图形界面系统可以查看找到硬件设备,但命令行方式无法找到。

并不是根目录下任何一个目录都可以作为挂载点,由于挂载 *** 作会使得原有目录中文件被隐藏,因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录

磁盘也是一样的,磁盘的文件是存放在 /dev 目录下,磁盘设备文件的命名规则为:

常见的主设备号有:sd,hd;它们是代表的不同的磁盘类型: sd 代表的 IDE 硬盘, hd 代表的是 SCSI 硬盘

次设备号就是同一类型设备的次序,用 [a-z] 来表示, /dev/sda 表示第一块 IDE 类型的磁盘, /dev/sdb 表示第二块 IDE 类型的磁盘

磁盘分区编号,每一块磁盘都会被划分为多个磁盘分区(这个下面会介绍),每一个分区都会有一个编号,比如: /dev/sda1 表示这是该磁盘的第一个分区,以此类推

在 Linux 中,每一个硬盘设备都只能划分四个主分区;若是划分了一个扩展分区那最多可以划分三个主分区;可以表示为:

主分区加扩展分区最多只有四个;可以全部划分为主分区,也可以之划分一个主分区;但是扩展分区最多只有一个;扩展分区是不能直接使用的,还有进一步划分为逻辑分区才能使用;一个扩展分区可以划分为多个逻辑分区;

主分区的分区编号是:1,2,3,4;从扩展分区划分出来的逻辑分区的编号是从 5 开始,以次累加

这跟系统启动有关系;当你启动电脑时,首先就会加载 BIOS 信息,这里面包含了 Cpu 和其他硬件设备的信息;找到它计算机就知道怎么启动了

接下来,它会去找 MBR(Master Boot Record) ,也就是主引导记录;为了方便 BIOS 的查找,所以就会把它放在磁盘上第0磁道上的第一个扇区中,磁盘中每个扇区有 512 字节;虽然只有这么大一点,但是要存三部分信息:

磁盘分区表总共只有 64 字节,而每个分区信息占 16 个字节,所以就只能有四个主分区了

这应该是历史遗留的问题了,一开始只有四个分区,后来发现四个分区不够用,就引入了扩展分区,而扩展分区是不能直接使用的,它必须再划分为逻辑分区,逻辑分区的数量可以是任意多个。

对用户而言,主分区和逻辑分区使用起来没有任何的区别,同时还能够达到无限分区的目的

我想很多人都思考过这个问题,我再了解了之后才发现磁盘分区还是有很多的好处的。具体例子:

现在给你一个仓库,你打算存放快递,一开始你一股脑的把所有的快递直接放进去,等到别人来取快递的时候你就发愁了,几十甚至上百个快递得找到啥时候啊

所以你打算开始分区管理,因为你代理了中通,圆通,百世等好几个快递,所以你打算按照不同的快递分为三个货架;

过一段时间发现同一种快递如果量大的时候还是会混乱;因此你又想了个办法就是按照日期给快递编号,然后按照不同的日期将货架分为多层,每一层存放某一天的快递,同时你又找了个表记录了每个分区快递存放的位置,这大大增加了存取的效率

磁盘分区的目的,

Linux 常见目录:

一般要是新手,可以只建立两个分区:

这种分区方式比较简单,如果只是测试可以用这种;要是想当成一个常用的系统,就需要更细一点划分了,常用的分区方案如下(假如有磁盘有100G):

一、fdisk-l

这个命令会列出当前分区和配置。

[root@cql ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000e3d27

Device Boot Start End Blocks Id System

/dev/sda1 1 914 7340032 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2 914 1437 4194304 82 Linux swap / Solaris

/dev/sda3 * 1437 2611 9436160 83 Linux

Disk /dev/sdb: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

/dev/sdb就是我新添加的硬盘

二、格式化:

[root@cql ~]# mkfs -t ext4 /dev/sdb

mke2fs 1.41.12 (17-May-2010)

文件系统标签=

*** 作系统:Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

591008 inodes, 2361547 blocks

118077 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=2420113408

73 block groups

32768 blocks per group, 32768 fragments per group

8096 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

正在写入inode表: 完成

Creating journal (32768 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 29 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

三、挂载硬盘:

新建文件夹:mkdir /data2

将硬盘挂载到data2下

mount /dev/sdb /data2

四、加入开机自动

我是通过修改/etc/fstab文件,加入开机自动的,反正方法各种各样,都可以的,随自己的心情~

首先查看分区的UUID

[root@cql ~]# blkid

/dev/sda3: UUID="16046051-6a05-4e6b-b5d2-b64258f5e6d2" TYPE="ext4"

/dev/sda1: UUID="1573581f-e2d5-4f7c-a2de-da6e0eb94359" TYPE="ext4"

/dev/sda2: UUID="a0b44529-1476-4cd7-a009-51b879ba163a" TYPE="swap"

/dev/sdb1: UUID="f124b1f5-16df-4d68-bdc4-41aa08562111" TYPE="ext4"

编辑

[root@cql ~]# vi /etc/fstab

#

# /etc/fstab

# Created by anaconda on Sun Sep 17 22:40:58 2017

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=16046051-6a05-4e6b-b5d2-b64258f5e6d2 / ext4 defaults 1 1

UUID=1573581f-e2d5-4f7c-a2de-da6e0eb94359 /u01 ext4 defaults 1 2

UUID=a0b44529-1476-4cd7-a009-51b879ba163a swap swap defaults 0 0

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

UUID=f124b1f5-16df-4d68-bdc4-41aa08562111 /u01 ext4 defaults 1 2

~

"/etc/fstab" 16L, 899C written

[root@cql ~]# cat /etc/fstab

#

# /etc/fstab

# Created by anaconda on Sun Sep 17 22:40:58 2017

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=16046051-6a05-4e6b-b5d2-b64258f5e6d2 / ext4 defaults 1 1

UUID=1573581f-e2d5-4f7c-a2de-da6e0eb94359 /u01 ext4 defaults 1 2

UUID=a0b44529-1476-4cd7-a009-51b879ba163a swap swap defaults 0 0

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

UUID=f124b1f5-16df-4d68-bdc4-41aa08562111 /u01 ext4 defaults 1 2

重启,确认结果~

[root@cql ~]# reboot

Broadcast message from root@cql

(/dev/pts/3) at 21:50 ...

The system is going down for reboot NOW!

[root@cql ~]# df -hT

Filesystem Type Size Used Avail Use% Mounted on

/dev/sda3 ext3 8.9G 4.0G 4.5G 48% /

tmpfs tmpfs 931M 72K 931M 1% /dev/shm

/dev/sda1 ext3 8.9G 149M 8.3G 2% /u01

/dev/sdb1 ext3 8.9G 149M 8.3G 2% /u01

1、/分区。用于存储系统文件。

2、swap,即交换分区,也是一种文件系统,它的作用是作为Linux的虚拟内存。在Windows下,虚拟内存是一个文件:pagefile.sys;而Linux下,虚拟内存需要使用独立分区,这样做的目的据说是为了提高虚拟内存的性能。

3、/home:是用户文件夹所在的地方。如果独立划分/home,即使Ubuntu不能启动,也可以用Live CD启动来取得自己的文件资料。

4、/boot:包含了 *** 作系统的内核和在启动系统过程中所要用到的文件。

很多老旧的教程中,都会让用户在/boot目录上挂载一个大小为100MB左右的独立分区,并推荐把该/boot放在硬盘的前面——即1024柱面之前。事实上,那是Lilo无法引导1024柱面后的 *** 作系统内核的时代的遗物了。当然,也有人说,独立挂载/boot的好处是可以让多个Linux共享一个/boot。

其实,无论是基于上述的哪种理由,都没有必要把/boot分区独立出来。首先,Grub可以引导1024柱面后的Linux内核;其次,即使是安装有多个Linux,也完全可以不共享/boot。因为/boot目录的大小通常都非常小,大约20MB,分一个100MB的分区无疑是一种浪费,而且还把把硬盘分的支离破碎的,不方便管理。

另外,如果让两个Linux共享一个/boot,每次升级内核,都会导致Grub的配置文件冲突,带来不必要的麻烦。而且,不独立/boot分区仅仅占用了根目录下的大约20MB左右的空间,根本不会对根目录的使用造成任何影响。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6073564.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-13
下一篇 2023-03-13

发表评论

登录后才能评论

评论列表(0条)

保存