Linux 分区那些事

来由

因为最近刚把路由器装上OpenWrt的系统,但是路由器空间有限,一不小心装python包装到 一半导致路由器空间爆满,所以打算把自己的一个U盘扩展到上面来使用。

原来那个U盘是Fat系统分区的,而好多OpenWrt的文章都说需要ext3或者ext4文件系统较好 所以就开始来折腾把U盘格式化为这两种系统了。

昨晚上头比较昏,并且家里没有linux的系统的电脑,OpenWrt系统没装过fdisk和mkfs,所 以不行;windows电脑上面有cygwin,里面有fdisk和mkfs,但是也不行;mac电脑尼玛好像 不支持ext3和ext4系统的格式化,所以也比较苦逼。

今天下午在公司用centos的服务器把那个盘给格式化了,在格式化的过程中还是遇到一些知 识是可以整理的,所以就想写一篇文章来记录一下。

主要内容

这里主要涉及到两块,一个是使用fdisk给磁盘(U盘)分区,第二个是使用mkfs给分区格式 化并写入文件系统;最后还简单带过如果把磁盘moute到一个路径上面以及开机就mount

如何查找linux下面的硬盘设备

一般可以使用,但是有的系统上面不显示

fdisk -l

那就去 /dev 目录下面ll查看,一般disk设备有如下特征,类型是b(block设备),然后组 名是disk,然后序号是a,b,c,d这种,名字一般都是 <x>da这种模式,如下的是在一个虚 拟机上面的内容

brw-r----- 1 root disk 253,   0 Aug 14 13:39 vdabrw-r----- 1 root disk 253,   1 Aug 14 13:39 vda1brw-r----- 1 root disk 253,   2 Aug 14 13:39 vda2brw-r----- 1 root disk 253,  16 Aug 17 02:25 vdbbrw-r----- 1 root disk 253,  17 Aug 17 02:25 vdb1brw-r----- 1 root disk 253,  18 Aug 17 02:27 vdb2

给磁盘分区

以下来自man:

fdisk就是一个Linux系统分区表操作器 一个硬盘可以被分割成一个或者几个逻辑磁盘(分区),这个如何分隔的信息存放在磁 盘的第一个块中,我们叫它为分区表。在bsd系统中,这两者被叫做(disk slice 和 disklabel)

linux需要至少一个分区来作为它的根文件系统;linux可以使用交换文件或者交换分区 来做虚拟内存,但是交换分区效率更高,所以一般第二个分区都是交换分区;在Intel 兼容的硬件中,BIOS启动系统的时候只能读取到前1024个簇,因为这个原因,大硬盘一 般还分一个小分区,大概十几M,挂在到/boot目录下面来存放内核镜像以及启动时候需 要的一些

fdisk是一个菜单驱动的,用来创建和操作分区表的程序,它可以识别dos,bsd以及sun 类型的分区表,但是不认识GPT表,因为它本身不是设计为大磁盘分区的。

一个物理设备通常表示为/dev/sda,/dev/sdb这样的形式,老系统对IDE和SCSI接口会对 应到不同的名字/dev/hd*, /dev/sd*

分区就是一个设备名字后面带一个分区号,所以/dev/sda1就是第一个设备的第一个分 区。

那弄清楚了分区的意义,那么我们就来试试分区.

#fdisk /dev/sdb,然后会出如下几个选项n   新建分区d   删除分区w   写入分区表

主分区,逻辑分区,扩展分区

这个分区术语主要是针对dos格式的分区表来说的,dos格式的分区表最多有四个主分区,四 个主分区里面可能有一个扩展分区,然后扩展分区里面可以有很多个逻辑分区,这种模式其 实就突破了分区长度不限制的问题了。为什么要这么实现?其实如果我们做数据结构设计的 时候可能也会去这么设计,首先读出来定长的(主分区)内容,然后再看里面有没有变长的数 据(扩展分区)。还是引用百度百科的内容吧:

逻辑分区是硬盘上一块连续的区域,不同之处在于,每个主分区只能分成一个驱动器,每个主分区都 有各自独立的引导块,可以用fdisk设定为启动区。一个硬盘上最多可以有4个主分区,而扩展分区上 可以划分出多个逻辑驱动器。这些逻辑驱动器没有独立的引导块,不能用fdisk设定为启动区。主分区 和扩展分区都是dos分区。 硬盘分区有三种,主磁盘分区、扩展磁盘分区、逻辑分区。

一个硬盘主分区至少有1个,最多4个,扩展分区可以没有,最多1个。且主分区+扩展分区总共不能超 过4个。逻辑分区可以有若干个。 激活的主分区是硬盘的启动分区,他是独立的,也是硬盘的第一个 分区,正常分的话就是C驱。 分出主分区后,其余的部分可以分成扩展分区,一般是剩下的部分全部 分成扩展分区,也可以不全分,那剩的部分就浪费了。 但扩展分区是不能直接用的,他是以逻辑分区的 方式来使用的,所以说扩展分区可分成若干逻辑分区。他们的关系是包含的关系,所有的逻辑分区都是 扩展分区的一部分。

格式化分区

上面我们对磁盘分区了之后,磁盘还不能使用,必须先使用某种文件系统来格式化,那我们 就需要用到mkfs这个命令了,我们看看man里面是如何介绍的:

mkfs是用来在设备上的一个分区上面构建一个linux文件系统的工具。实际上mkfs是一 个简单的前端命令,它包括了不同文件系统的格式化程序。比如mkfs.ext2, mkfs.ext3等等。类型包括如下: mkfs.bfs(8), mkfs.ext2(8), mkfs.ext3(8), mkfs.ext4(8), mkfs.minix(8), mkfs.msdos(8), mkfs.vfat(8), mkfs.xfs(8), mkfs.xiafs(8)

当然命令也比较简单,直接用需要的那个文件系统的格式化工具,然后加上磁盘分区即可

mkfs.ext4 /dev/sdxy

格式化完之后还不能立马使用磁盘,还需要先mount到一个目录,然后再把mount记录添加到 fstab里面,这样才算安装完成。

Linux 分区那些事

相关文章:

你感兴趣的文章:

标签云: