`
鲁静_Loading
  • 浏览: 6029 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Linux系统下磁盘到文件系统的操作过程

阅读更多

       当我们购进一块新的磁盘(以 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
   
 

 

    如上图所示,通过 mke2fs 命令我们成功为 sdc1 分区创建了 ext4 文件系统。

    mke2fs 命令还支持下述几个参数:

    

-b blocksize  // 文件系统块(读取文件系统的最小单位)大小,默认为 4K
-c            // 创建文件系统时,检查磁盘是否有坏损块
-j            // 创建文件系统日志
-L label      // 指定卷标,同 windows 系统下重新命名盘符名称一样,如将D盘盘符修改为 games
 
    创建好文件系统后,可以通过 dumpe2fs 命令查看文件系统详情。    
dumpe2fs /dev/sdc1    // 通过此命令查看 /dev/sdc1 分区的文件系统详情
 
    如果在创建文件系统时,未使用 -L 参数为文件系统指定卷标,我们可通过 e2label 为其添加标签,命令如下:
// 查看分区标签
e2label /dev/sdc1

// 添加标签,标签默认设置为全大写
e2label /dev/sdb1 WORKSTATION  
   
    

 

4. 挂载

       在为磁盘或分区创建好文件系统之后,我们需要将其挂载到操作系统的某个目录下才能被使用。接下来,我们将使用 mount 命令完成 /dev/sdc1 ext4  -->  /mnt/workstation/ 的挂载操作。

// /dev/sdc1 为要挂载的分区
// /mnt/workstation 为挂载点
mount /dev/sdc1 /mnt/workstation

// 可通过不带参数的 mount 命令查看系统当前挂载点的详情
mount

    

 
   如上图所示,我们已成功将 /dev/sdc1 挂载到 /mnt/workstation 目录下。这样,以后所有在 /mnt/workstation 目录下所保存的文件都是存放在我们新加磁盘的 sdc1 主分区上的。
   我们在 /mnt/workstation 目录下创建一个新文件夹 linux 和一个新的空白文件 pro.conf,并列出该目录下的文件列表,如下图所示,列表中的文件或者文件夹都是保存在 /sdc1 主分区下的。
   备注:格式化好的文件系统都会有一个 lost+found 目录,用于存放丢失的文件。
mkdir linux     // 创建新文件夹
touch pro.conf  // 创建新空白文件
ll              // 列出文件列表
   
    mount 命令还可支持下列参数:
-t // 指定文件系统类型
-o //指定挂载点选项
  ro, rw    //以只读或读写形式挂载,默认为 rw
  sync      // 不使用缓存,对所有操作直接写入磁盘
  async     // 使用缓存,默认为 async
  noatime   // 每次访问文件时不更新文件的访问时间
  atime     // 每次访问文件时更新文件的访问时间
  remount   // 重新挂载文件系统
  
   我们可通过上述参数对 /dev/sdc1 以只读形式进行重新挂载,命令如下:
mount -t ext4 -o remount,ro /dev/sdc1 /mnt/workstation
   
 
   我们也可以通过配置 /etc/fstab 这个配置文件实现磁盘的自动挂载,用 vi 命令打开该配置文件,并在文件末尾加入如下文本。
// 需挂载设备     挂载点        文件类型    挂载选项   dump/fsck选项
/dev/sdc1    /mnt/workstation     ext4      defaults      0 0
    
 
    这样,当我们 reboot 系统之后,/dev/sdc1 分区就会自动挂载到 /mnt/workstation 挂载点下。
    我们也可以把 fstab 文件中的 /dev/sdc1 换成卷标模式 LABEL=WORKSTATION。
    
    文件系统在某些情况下也会出现错误,可以通过 fsck 命令对文件系统进行检查。
fsck /dev/sdc1

// 支持如下可选参数
-t 指定文件系统类型,fsck命令可自动检测文件系统类型,如果损坏较为严重,可用该参数
-y 不提示而直接修复损坏块
   
 

5. 卸载

      在第 4 节中我们通过 mount 命令完成了 /dev/sdc1 分区的挂载操作,我们也可以通过 umount 命令完成 文件系统的卸载(即 windows 下的安全弹出功能)操作。命令如下:
umount /dev/sdc1  // 或者 umount /mnt/workstation
   
 
    如红框中所示,系统提示: device is busy,这是由于当前目录正在被某些程序所使用,在这里是由于我们当前在终端中打开可该目录。
    当我们退出该目录后重新使用上述命令,即可成功卸载。如下图所示,成功卸载后,使用无参数 mount 命令,在结果中已没有 /dev/sdc1 的挂载信息,再 ll /mnt/workstation 已无文件。
        
     那么,当我们卸载时出现错误提示:device is busy 时,我们可以通过 fuser 与 lsof 这两个命令查看文件系统的程序占用情况。
fuser  // 查看文件系统被哪些进程所使用
lsof   // 查看哪些文件正在被系统所使用 (list open file)
 

 注:本文参考 nash_su 的 linux 入门基础课程,链接为:
        http://study.163.com/course/courseMain.htm?courseId=232007

 

分享到:
评论

相关推荐

    Linux中磁盘分区教程

    在Linux系统中,硬盘需要被格式化为特定的文件系统才能被操作系统识别和使用。常见的Linux文件系统有ext2、ext3、ext4、XFS、Btrfs等。格式化过程包括创建文件系统结构、分配空间以及设置权限和属性。`mkfs`命令常...

    Linux磁盘及文件系统管理详解

    综上所述,通过对硬盘物理结构、逻辑结构和文件系统逻辑结构的理解,我们可以更好地管理Linux系统中的磁盘空间和文件系统,从而避免磁盘容量浪费或文件存储不足的问题。这对于系统管理员来说是非常重要的技能。

    Linux 创建文件系统及挂载文件系统流程详解

    Linux 创建文件系统及挂载文件系统流程详解 Linux 操作系统中,创建文件系统及挂载文件系统是非常重要的步骤,它们都是文件系统管理的基础。文件系统是操作系统中最基本的组成部分,它提供了对文件和目录的存储、...

    操作系统课程设计 linux文件系统

    linux版本和vc++6.0版本 含设计报告,流程图等。 设计一个简单的多用户文件系统。即 ①在系统中用一个文件来模拟一个磁盘;...基本上是进入一个界面(此界面就是该文件系统的界面)后,可以实现设计的操作要求。

    Linux XFS文件系统误删除文件恢复.pdf

    Linux XFS 文件系统误删除文件恢复 在 Linux 操作系统中,文件误删除是一种常见的故障,可能会导致重要文件的丢失。幸运的是,在 Linux XFS 文件系统中,误删除文件可以通过一定的方法恢复。本文将讨论 Linux XFS ...

    linux 系统文件分区文件查看。

    在Linux系统中,管理和查看文件分区是日常操作的重要部分。Linux使用不同的文件系统类型,如ext2、ext3、ext4、XFS、Btrfs等,每个都有其独特的特性和功能。本文将深入探讨如何在Linux系统中查看文件分区以及在...

    Linux系统中的垃圾文件清理.pdf

    Linux系统中的垃圾文件清理是指在Linux操作系统中清除不必要的、占用磁盘空间和影响系统性能的文件。这些垃圾文件可能来自软件安装、软件运行、浏览器临时文件、非必要文件、文件缓存等方面。 在Linux系统中,垃圾...

    Linux中VMware虚拟机增加磁盘空间的扩容操作

    这个过程可能需要一段时间,完成后,虽然物理磁盘空间已经扩大,但在Linux系统中还无法直接看到和使用这部分新空间。 接下来,你需要在Linux操作系统内部进行分区和文件系统的调整。首先,确保你是以root权限登录。...

    Linux文件系统及文件管理 上机实验报告

    【实验报告概述】 本次实验是关于Linux文件系统及文件管理的上机操作,旨在让...通过这个实验,学生能够掌握Linux环境下文件系统的基本操作,进一步熟悉Linux系统的使用,这对于日常的系统维护和管理具有重要意义。

    Linux操作系统实训

    * 文件系统的类型:磁盘文件系统、网络文件系统、数据库文件系统等 二、文件系统设计 * 文件系统的设计原则:效率、可扩展性、安全性 * 文件系统的设计步骤:需求分析、系统设计、实现、测试 * 文件系统的组成部分...

    Linux之磁盘与文件系统(二).docx

    在Linux系统中,新增磁盘和创建文件系统是一个系统性的过程,包括了对磁盘的规划、分区、格式化、检查以及挂载等多个环节。本文中,作者介绍了挂载点的重要性、磁盘容量的查看方法以及磁盘分区状态的检查工具。后续...

    Linux文件系统的模拟实现.pdf

    Linux文件系统是操作系统的核心组件之一,负责管理存储设备上的数据组织和访问。 Linux文件系统的模拟实现是指通过软件模拟实现一个Linux文件系统,来加深对文件系统的理解。 文件系统的组成部分包括超级块、索引...

    linux系统下磁盘管理的方法

    在Linux系统中,磁盘管理是一项至关重要的任务,它涉及到系统的稳定性和数据的安全性。本篇文章将详细讲解如何在Linux环境下进行磁盘分区、挂载和卸载外部设备、磁盘管理、逻辑卷管理和磁盘配额管理。 1. **磁盘...

    linux系统磁盘的物理结构及磁盘IO过程详解.docx

    Linux系统中的磁盘物理结构和磁盘I/O过程是理解...总结来说,Linux系统磁盘的物理结构和磁盘I/O过程涉及到复杂的硬件和软件交互。理解这些概念有助于优化系统性能,解决存储相关问题,并更好地管理和维护Linux系统。

    课程思政理念下的Linux操作系统基础课程教学设计.pdf

    学生通过“Linux 操作系统基础”课程的学习,掌握 Linux 操作系统的基础知识,具备 Linux 系统操作与管理的能力。 二、 Linux 操作系统基础课程实施课程思政的优势 Linux 操作系统基础课程实施课程思政的优势在于...

    Linux之磁盘与文件系统(三).docx

    在Linux环境中,磁盘与文件系统是操作系统核心组成部分,它们负责数据的存储和管理。本文将继续深入探讨Linux中的磁盘格式化、文件系统的检查与修复,以及文件系统的挂载与卸载。 一、磁盘格式化 在创建新的分区如...

    Linux下位图文件系统的设计与实现.pdf

    这种设计能够快速确定哪些空间是可用的,从而提高文件系统操作的效率,特别是对于大量小文件的情况,位图文件系统通常表现得更为出色。 在设计位图文件系统时,需要考虑以下几个关键点: 1. **空间管理**:位图...

    模拟Linux文件系统

    在这个项目中,C++用于构建模拟的文件系统,它的效率和灵活性使得文件系统操作更为高效。 4. **文件操作**:在模拟的Linux文件系统中,你需要实现基本的文件操作,如`open()`、`read()`、`write()`、`close()`。...

Global site tag (gtag.js) - Google Analytics