当我们购进一块新的磁盘(以 Serial Disk 串口硬盘为例),想把它安装到我们的 Linux 系统下为我们所用,这个过程是怎么样的呢?需要用到哪些操作命令?笔者将在本文详细阐述这个过程。
如下图所示,在整个过程中,我们需要经历四个步骤:磁盘安装、磁盘分区、创建文件系统、挂载。接下来我们将从这四个部分分别阐述(附加“卸载”一节)。
1. 磁盘安装
首先,我们需要把新 SD 硬盘安装到我们的机器中,并做好数据线与电源线连接。本文中我们以 Oracle VM VirtualBox 创建模拟的 SD 硬盘。
2. 磁盘分区
SD 硬盘成功安装后,启动 Linux 系统,我们将在系统 /dev 目录下看到我们新安装的硬盘设备。如图所示,sdc 即是我们新安装的硬盘(sda, sda1, sda2, sdb, sdb1, sdb2, sdb5, sdb6 是我们已经在使用的硬盘)。
(1) 首先,我们使用 fdisk -l 命令查看新装磁盘 sdc 的相关详细信息,如:磁头数、扇区数与柱面数等。
fdisk -l /dev/sdc
(2) 使用 fdisk 命令进行磁盘分区
fdisk /dev/sdc
这时系统会提示 Command (m for help): 的命令行,在此我们输入字符 m 以寻求帮助信息。
从图中可以看出,系统为我们列出了 a, b, c... 多个命令选项,并附加了相关说明。接下来,我们将通过这些命令完成磁盘分区。
分区方案:将 sdc 磁盘(共4G)分为一个主分区 sdc1 (2G)和一个扩展分区 sdc2 (2G),并将扩展分区 sdc2 划分为两个逻辑分区 sdc5 (1G), sdc6 (1G)。
紧跟着上图所示的窗口,输入命令创建一个新分区,如下图所示。
1. 输入命令 n, 系统将列出扩展分区与主分区两个选项: e extended 与 p primary partition (1-4)
2. 输入 p,系统提示输入分区号, Partition number (1-4)
备注:以MBR形式作为主引导记录的磁盘,最大支持 4 个主分区
3. 输入 1,系统提示输入起始柱面号, First cylinder (1-522, default 1), 默认为1
4. 输入 1 或者 直接回车,系统提示输入结尾柱面号, Last cylinder...
备注:在此可直接使用 +size{K, M, G} 格式以表示该分区的大小,{K, M, G} 分别代表Kb, Mb, Gb
5. 输入 +2G,回车
按上述步骤即可完成主分区 sdc1 的创建,输入命令 p,可查看分区信息,如下图所示:
按上述步骤,根据命令提示即可完成扩展分区 sdc2 以及逻辑分区 sdc5, sdc6的创建。
最后, 输入命令 w 以将分区信息写入磁盘即可完成磁盘分区操作。(备注:如果将分区信息写入磁盘而直接退出,此次分区操作将不会生效)。
可以通过如下命令查看分区信息。
// 查看分区信息前,请通过如下命令使内核更新分区表
partprobe
// 查看分区信息
ls /dev/sdc*
fdisk -l
cat /proc/partitions // proc文件夹下保存了操作系统的实时信息, partitions文件即为分区信息文件
3. 创建文件系统
操作系统是通过文件系统对磁盘上的文件和数据进行管理的,所以磁盘或分区需要被创建文件系统之后才能够被操作系统使用,创建文件系统的过程又称为格式化。
我们将通过 mke2fs 命令对第二节中的 sdc1, sdc5, sdc6 三个新分区创建 ext4 文件系统。
// 分别为 sdc1, sdc5, sdc6 创建 ext4 文件系统
mke2fs -t ext4 /dev/sdc1 // 参数 -t 表示所创建文件系统的类型
mke2fs -t ext4 /dev/sdc5
mke2fs -t ext4 /dev/sdc6
![](http://dl2.iteye.com/upload/attachment/0107/4834/7e21983c-ee2e-3c90-99e4-333c76ea1e67.png)
如上图所示,通过 mke2fs 命令我们成功为 sdc1 分区创建了 ext4 文件系统。
mke2fs 命令还支持下述几个参数:
-b blocksize // 文件系统块(读取文件系统的最小单位)大小,默认为 4K
-c // 创建文件系统时,检查磁盘是否有坏损块
-j // 创建文件系统日志
-L label // 指定卷标,同 windows 系统下重新命名盘符名称一样,如将D盘盘符修改为 games
dumpe2fs /dev/sdc1 // 通过此命令查看 /dev/sdc1 分区的文件系统详情
// 查看分区标签
e2label /dev/sdc1
// 添加标签,标签默认设置为全大写
e2label /dev/sdb1 WORKSTATION
![](http://dl2.iteye.com/upload/attachment/0107/4840/2551ff53-3767-39c1-adc1-423268318d4f.png)
4. 挂载
在为磁盘或分区创建好文件系统之后,我们需要将其挂载到操作系统的某个目录下才能被使用。接下来,我们将使用 mount 命令完成 /dev/sdc1 ext4 --> /mnt/workstation/ 的挂载操作。
// /dev/sdc1 为要挂载的分区
// /mnt/workstation 为挂载点
mount /dev/sdc1 /mnt/workstation
// 可通过不带参数的 mount 命令查看系统当前挂载点的详情
mount
mkdir linux // 创建新文件夹
touch pro.conf // 创建新空白文件
ll // 列出文件列表
![](http://dl2.iteye.com/upload/attachment/0107/4846/aa25c60c-d916-3b6d-9382-5544c9e9a4f2.png)
-t // 指定文件系统类型
-o //指定挂载点选项
ro, rw //以只读或读写形式挂载,默认为 rw
sync // 不使用缓存,对所有操作直接写入磁盘
async // 使用缓存,默认为 async
noatime // 每次访问文件时不更新文件的访问时间
atime // 每次访问文件时更新文件的访问时间
remount // 重新挂载文件系统
mount -t ext4 -o remount,ro /dev/sdc1 /mnt/workstation
![](http://dl2.iteye.com/upload/attachment/0107/4848/5e76f29d-a1a6-3274-9fd6-cda4efffd80d.png)
// 需挂载设备 挂载点 文件类型 挂载选项 dump/fsck选项
/dev/sdc1 /mnt/workstation ext4 defaults 0 0
![](http://dl2.iteye.com/upload/attachment/0107/4858/93291878-1a9d-375b-971c-ba116a58e108.png)
fsck /dev/sdc1
// 支持如下可选参数
-t 指定文件系统类型,fsck命令可自动检测文件系统类型,如果损坏较为严重,可用该参数
-y 不提示而直接修复损坏块
![](http://dl2.iteye.com/upload/attachment/0107/4842/9368835b-6931-35b4-9cce-b08fd2b13921.png)
5. 卸载
umount /dev/sdc1 // 或者 umount /mnt/workstation
![](http://dl2.iteye.com/upload/attachment/0107/4854/f7698068-37c4-359a-8a38-e6bd8740b3db.png)
![](http://dl2.iteye.com/upload/attachment/0107/4866/3d222dc1-436c-3948-9158-1d3e2c1f46c0.png)
fuser // 查看文件系统被哪些进程所使用
lsof // 查看哪些文件正在被系统所使用 (list open file)
注:本文参考 nash_su 的 linux 入门基础课程,链接为:
http://study.163.com/course/courseMain.htm?courseId=232007