《Ubuntu Linux 从入门到精通》——6.2 挂载与卸载分区

简介: 在Windows中,文件系统格式主要有FAT和NTFS两种,而在Ubuntu中,文件系统格式分类更加细致,除了第4章中讲到的EXT2、EXT3外,针对不同的设备或硬盘分区,都有不同的格式要求,在进行挂载操作时,都必须按照相应的格式及别名进行。

本节书摘来自异步社区《Ubuntu Linux 从入门到精通》一书中的第6章,第6.2节,作者:陶松 , 刘雍 , 韩海玲 , 周洪林著,更多章节内容可以访问云栖社区“异步社区”公众号查看

6.2 挂载与卸载分区

学习了Ubuntu的磁盘管理基础知识后,本节讲解挂载及卸载包括磁盘在内的各种常见设备的方法,这些方法主要涉及shell命令中的mount和umount两个命令的使用。

6.2.1 挂载与卸载分区的方法
1.挂载的基础知识
通过对前一节的学习,读者已经认识到在Ubuntu中,所谓分区的概念,其实就是挂载点的含义。在Ubuntu中,可以将所有的设备都看作是一个文件,要使用某个设备或某个文件之前,都必须先将其挂载到系统中。挂载的含义就是把磁盘的内容放到某一个目录下。本小节介绍常用的各种文件系统的挂载方法。

在Windows中,文件系统格式主要有FAT和NTFS两种,而在Ubuntu中,文件系统格式分类更加细致,除了第4章中讲到的EXT2、EXT3外,针对不同的设备或硬盘分区,都有不同的格式要求,在进行挂载操作时,都必须按照相应的格式及别名进行。

表6-5是Ubuntu系统中常用的挂载文件系统的格式及说明。
screenshot

需要说明的是,在进行挂载操作时,目标所指定的目录一定要在挂载前创建,或在挂载前就已经存在,但它不一定为空。在进行挂载后,如果目标所对应的目录中原本已经有一些文件,那么这些旧的文件将不能再使用,除非卸载掉该目录上已经挂载的文件系统。

2.挂载方法详述
挂载时,主要使用mount命令进行操作。操作时,需要指定需挂载的文件系统的类型、名称、目的地目录。

Mount命令标准语法:

mount [参数] -t [类型] [设备名称] [目的地目录]。

常用参数。

-V:显示程序版本。

-h:显示辅助信息。

-v:显示执行时的详细信息,通常和-f一起用来除错。

-a:将/etc/fstab中定义的所有档案系统挂上。

-F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS档案系统时,可以加快挂上的动作。

-f:通常用来除错。它会使mount并不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。

-n:一般而言,mount在挂上后会在/etc/mtab中写入一笔资料。但在系统中没有可写入档案系统存在的情况下,可以用这个选项取消这个动作。

-s-r:等于-o ro。

-w:等于-o rw。

-L:将含有特定标签的硬盘分割挂上。

-U:将档案分割序号为某一个号数的档案系统挂下。-L和-U必须在/proc/partition这种档案存在时才有意义。

-t:指定档案系统的型态。通常不必指定,mount会自动选择正确的型态。

-o ro:用只读模式挂上。

-o rw:用可读写模式挂上。

-o loop:使用loop模式用来将一个档案当成硬盘分割挂上系统。

为了不影响系统中的原有文件系统,挂载前通常需要创建一个挂载点,也即是创建一个目录,为了便于查询和归类,通常将新建的挂载点放置在/mnt目录下。如下所示:

root@jacky-desktop:~# ls /mnt       //查看/mnt目录内容
root@jacky-desktop:~#
root@jacky-desktop:~# mkdir /mnt/tmp   //在/mnt目录下创建一个名为tmp的挂载点
root@jacky-desktop:~# ls /mnt    
tmp                     //tmp挂载点已经创建

针对已经创建的挂载点,可以将任何一种类型的设备或硬盘分区挂载到挂载点。如下所示:

root@jacky-desktop:/mnt# mount -t ext3 /dev/hda3 /mnt/tmp  //挂载ext3格式的分区/dev/hda3  
//到/mnt/tmp

需要挂载Windows的FAT/FAT32格式的分区,如下所示:

root@jacky-desktop:/mnt# mount -t vfat /dev/sda7 /mnt/tmp  //将/dev/sda7挂载到/mnt/tmp

挂载NTFS格式的分区,如下所示:

root@jacky-desktop:/mnt# mount -t ntfs /dev/sda6 /mnt/tmp //将/dev/sda6挂载到/mnt/tmp

挂载光驱,需要先确定光驱在系统中的设备名,如下所示:

root@jacky-desktop:/mnt# mount -t iso9660 /dev/scd0 /mnt/tmp  //将光驱挂载到/mnt/tmp

以上例子是最基本的mount命令的使用方法,在使用时,要注意正确书写设备的类型及设备的名称,可以查看/etc/fstab文件中的信息来识别。

此外,利用mount命令还可以挂载U盘。以双操作系统为例,将U盘插入USB接口后,如下所示:

root@jacky-desktop:/mnt# mount -t vfat /dev/sda1 /mnt/tmp -o iocharset=utf8

一般情况下,U盘的设备名是/dev/sda1,但最好还是查看一下/etc/fstab文件,其类型为vfat。后面的-o iocharset=utf8参数可以支持中文的正常显示。

如果是利用Vmware虚拟机安装的Ubuntu,则不能直接使用U盘,也即是在/etc/fstab文件中看不到U盘的信息。为此,可以按以下方式操作。

在Vmware虚拟机窗口中,单击菜单“VM-Install Vmware Tools”,进行虚拟机工具安装流程。打开如图6-1所示的窗口,其中有一个tar.gz格式工具包。读者双击鼠标后可安装。

screenshot

在图6-1的地址栏,可以看到这两个文件包的路径为/media/VMwares,将它们复制到当前用户的主目录下,可以利用鼠标操作,也可以通过命令操作,如下所示:

root@jacky-desktop:~# cp /media/VMwares/VMwareTools--324285.tar.gz /root
//复制tar.gz包到/root目录
root@jacky-desktop:~# ls /root
VMwareTools--324285.tar.gz

针对两种格式的包,安装的方式也不一样。以tar.gz包为例,应先解压,方法如下:

root@jacky-desktop:~# tar -xzvf VMwareTools--324285.tar.gz  //解压文件包
…                                          //解压过程
…
…
VMware-tools-distrib/doc/INSTALL
VMware-tools-distrib/installer/
VMware-tools-distrib/installer/services.sh
VMware-tools-distrib/INSTALL
VMware-tools-distrib/FILES
root@jacky-desktop:~#                //解压完成
root@jacky-desktop:~# ls
VVMware-tools-distrib                //解压tar.gz包后所形成的文件夹
VMwareTools--324285.tar.gz

解压完成,进入相应的文件夹,如此处的VMware-tools-distrib文件夹,如下所示:

root@jacky-desktop:~# cd VMware-tools-distrib/    //进入目录
root@jacky-desktop:~/VMware-tools-distrib# ls    //查看目录中的文件信息
bin  doc  etc  FILES  INSTALL  installer  lib  VMware-install.pl

进入doc目录,查看相应的文档说明,以辅助安装,如下所示:

root@jacky-desktop:~/VMware-tools-distrib# cd doc      //进入目录
root@jacky-desktop:~/VMware-tools-distrib/doc# ls
INSTALL  open_source_licenses.txt  README  VMware-vmci
root@jacky-desktop:~/VMware-tools-distrib/doc# vim INSTALL  //查看INSTALL文件内容
…                            //文件内容
  To install/upgrade VMware Tools for Linux,
  run the program "VMware-install.pl" from a command prompt, either in text
  mode or from a terminal inside an X session. You must have super user
  privileges (i.e. be logged as root) to run it.

   ./VMware-install.pl
…          //上述内容指出了安装该软件包应该运行的命令

明确了安装方法后,可以按照说明安装,如下所示:

root@jacky-desktop:~/VMware-tools-distrib/doc# cd ..      //返回到上一级目录
root@jacky-desktop:~/VMware-tools-distrib# ls        //查看文件信息
bin  doc  etc  FILES  INSTALL  installer  lib  VMware-install.pl                                //发现了安装所需要运行的文件VMware-install.pl
root@jacky-desktop:~/VMware-tools-distrib# ./VMware-install.pl  //键入安装命令并回车确认
Creating a new VMware Tools installer database using the tar4 format.                            //以下是安装过程,其中需要读者互动

Installing VMware Tools.

In which directory do you want to install the binary files?
[/usr/bin]        //选择安装二进制文件的路径,默认为/usr/bin,可直接回车确认

What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc]           //选择初始化文件夹路径,默认为/etc,直接回车确认

What is the directory that contains the init scripts?
[/etc/init.d]        //初始化脚本文件,默认为/etc/init.d,直接回车确认

In which directory do you want to install the daemon files?
[/usr/sbin]        //选择安装守护进程文件路径,默认为/usr/sbin,可直接回车确认

In which directory do you want to install the library files?
[/usr/lib/VMware-tools]    //选择安装库文件的路径,默认为/usr/lib/VMware-tools,可直接回车确认

The path "/usr/lib/VMware-tools" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]          //上述路径所对应的文件夹不存在,是否创建,回车确认表示立即创建

In which directory do you want to install the documentation files?
[/usr/share/doc/VMware-tools]                                    //选择文档文件安装路径,默认为/usr/share/doc/VMware-tools,直接回车确认

The path "/usr/share/doc/VMware-tools" does not exist currently. This program
is going to create it, including needed parent directories. Is this what you
want? [yes]        //上述路径所对应的文件夹不存在,是否创建,回车确认表示立即创建

The installation of VMware Tools  build-80004 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/VMware-uninstall-tools.pl".
//VMware工具包版本已经成功安装
//当读者不需要使用该软件包时,可以用命令“/usr/bin/VMware-uninstall-tools.pl”卸载该工具
Before running VMware Tools for the first time, you need to configure it by
invoking the following command: "/usr/bin/VMware-config-tools.pl". Do you want
this program to invoke the command for you now? [yes]
//在第一次使用VMware工具的时候,需要进行配置,询问是否立即调用/usr/bin/VMware-config-tools.pl  
  //命令来进行配置,回车确认表示立即配置 

Stopping VMware Tools services in the virtual machine:
   Guest operating system daemon:                    done
Trying to find a suitable vmmemctl module for your running kernel.

None of the pre-built vmmemctl modules for VMware Tools is suitable for your
running kernel.  Do you want this program to try to build the vmmemctl module
for your system (you need to have a C compiler installed on your system)?
[yes]        //建立vmmemctl模块,回车表示确认建立(要确保系统有C语言编译器)

Using compiler "/usr/bin/gcc". Use environment variable CC to override.
//用/usr/bin/gcc编译器
What is the location of the directory of C header files that match your running
kernel? [/lib/modules/-19-generic/build/include]  //运用C头文件包,直接回车确认

… …          //编译过程
None of the pre-built vmhgfs modules for VMware Tools is suitable for your
running kernel.  Do you want this program to try to build the vmhgfs module for
your system (you need to have a C compiler installed on your system)? [yes]
//解决vmhgfs模块的安装问题,需要具备C语言编译器,回车确认

… …          //编译过程,如遇到停顿,始终敲击回车键直接确认即可
Enjoy,
--the Vmware team               //安装完成

VMware Tools安装完成,Ubuntu可以自动挂载U盘。将U盘插入相应的USB接口,VMware虚拟机将自动将U盘挂载到Ubuntu中。可以通过命令查看,如下所示:

root@jacky-desktop:~# df
文件系统      1K-块    已用   可用 已用% 挂载点
/dev/sda1      7913216   2895040   4619364  39% /
varrun        257788    108  257680   1% /var/run
varlock       257788      0  257788   0% /var/lock
udev        257788     52  257736   1% /dev
devshm        257788     12  257776   1% /dev/shm
lrm         257788   38684  219104  16% /lib/modules/-19-generic/volatile
/dev/scd0     108512  108512     0 100% /media/cdrom0
/dev/sdb1    3956224   1459320   2496904  37% /media/

最后一行/dev/sdb1即为自动挂载到系统中的U盘。如果需要使用rpm包,则需要先下载安装相应的组件,此处不推荐。关于下载和安装软件包的具体方法,将在后续章节中讲解。

此外,利用mount命令还可以挂载镜像文件、网络文件、跨平台的共享文件等。鉴于篇幅的关系,此处不再赘述,有兴趣或有需要的读者可以根据上述方法依此类推。

3.卸载方法详述
当读者不再需要使用那些已经挂载的文件系统或设备时,要对其进行卸载操作。与挂载的mount命令相对应,在卸载的时候,可以使用umount命令。

umount命令语法:umount [参数] -t[文件系统类型] [文件系统]。

主要参数。

-a:卸载/etc/mtab中记录的所有文件系统。

-h:显示帮助。

-n:卸载时不要将信息存入/etc/mtab文件中。

-r:若无法成功卸载,则尝试以只读的方式重新挂入文件系统。

-t <文件系统类型>:仅卸载选项中指定的文件系统。

-v:执行时显示详细的信息。

-V:显示版本信息。

[文件系统]:除了直接指定文件系统外,也可以用设备名称或挂入点来表示文件系统。

具体的使用方法如下:

root@jacky-desktop:/mnt# umount -t vfat /dev/hda7    //卸载/dev/hda7
root@jacky-desktop:/mnt# umount –ar    //卸载/etc/mtab文件中记录的所有文件系统,当无法卸载时,改为只读方式重新挂载
root@jacky-desktop:/mnt# umount -t vfat /dev/sda1    //卸载/dev/sda1

使用VMware虚拟机安装Ubunut的读者,在卸载U盘的时候,除了使用相应的umount命令,还可以在VMware虚拟机菜单中选择“VM-Removeable Devices-USB Devices”,然后在后面对应的U盘名称上单击,取消前面的小勾,就可以从Ubuntu中将其卸载。

6.2.2 开机自动挂载配置文件
除了手动挂载设备以外,读者还可以修改相关的配置文件,使Ubuntu每次启动后按照配置文件的内容自动挂载相应的设备。主要的配置文件是/etc/fstab,读者可以利用vim编辑该文件,如下所示:

root@jacky-desktop:~# vim /etc/fstab
# /etc/fstab: static file system information.
#
# <file system>     <mount point>  <type>  <options>  <dump>  <pass>
proc              /proc     proc  defaults    0     0
# /dev/sda1
UUID=da0ad461-4b12518ab1bb9 /  ext3  relatime,errors=remount-ro 0 1
# /dev/sda5
UUID=6fec-d4b7-b67e-673152afe115 none swap  sw   0     0
/dev/scd0     /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0     0
/dev/fd0    /media/floppy0  auto  rw,user,noauto,exec,utf8 0     0
/root/swapfile   none  swap  sw    default  0  0

以上是文件/etc/fstab的内容,文件中以“#”开头的行为注释不会被实际执行,它可以为读者讲解文件的内容结构。其他每一行代表一项配置信息,每一行可分为6列,依次为。

(1):文件系统或设备位置。

如/dev/sda1、/dev/fd0、/dev/hda6等,其格式与磁盘的别名格式相同。

(2):挂载到的目的地位置。

目的地位置就是常说的“挂载点”,该地址与mount命令中的[目的地目录]格式及要求相同。

(3):设备挂载到目的地时的类型。

Ubuntu支持的所有类型都可以选用,针对不同的文件或设备,要区分其类型,该类型与mount命令中的[类型]相同。

(4):挂载时的选项,基本可以和mount命令的“-o”选项对应,常用的选项如下。

ro/rw/defaults/...:挂载的文件系统权限状态,defaults包括rw、suid、exec、auto、nouser、async。

utf8/gbk/...:挂载文件系统的字符编码。

umask:文件权限掩码,例如:

umask=0022(默认)

则文件默认权限=666-umask=644(rw-,r-,r-),或文件夹默认权限=777-umask=755(rwx,r-x,r-x)。

(5):dump工具(Linux下的一个常用备份工具)的使用。

该选项表示在挂载相应的设备时,是否启用dump工具进行自动备份。0表示不需要,1表示每天,2表示每两天。

(6):fsck工具的使用。

该选项表示系统启动时是否使用fsck工具对挂载的该文件系统进行检查。0表示不需要,1表示需要。

读者可以根据自己的实际需要,在该文件中添加信息,每一行信息都要具备以上6个要素,按顺序编辑好,每一列之间用一个或多个空格符隔开。

编辑好该文件并保存后,读者可以运行mount -a命令来挂载该文件中定义好的所有需要挂载的设备。操作系统重新启动后,会自动扫描该文件中的信息,作出相应的挂载动作,并在加载完成后,将信息记录到/etc/mtab中,这个文件是由系统自动创建并读写的,一般不需要读者手动维护。

相关文章
|
4月前
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
996 3
|
7天前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
46 13
|
4月前
|
存储 监控 安全
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
|
29天前
|
存储 缓存 Ubuntu
Ubuntu Linux目录结构
理解Ubuntu Linux的目录结构对系统管理、维护和故障排除至关重要。每个目录都有其特定的用途和存放内容,通过了解这些目录,可以更高效地管理系统文件,确保系统的稳定运行。希望本文对你深入理解Ubuntu的目录结构有所帮助。
51 1
|
1月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
39 3
|
2月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
228 4
Linux系统之Ubuntu安装cockpit管理工具
|
2月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
590 3
|
2月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
48 3
|
2月前
|
Linux
linux开机挂载镜像
【10月更文挑战第1天】在 Linux 系统中,开机挂载镜像通常涉及几个关键步骤,包括创建挂载点、编辑配置文件以及重新加载配置
104 0
|
2月前
|
Ubuntu Linux 网络安全
如何在Ubuntu 22.04或20.04 Linux上安装MobaXterm
虽然直接在Ubuntu 22.04或20.04上安装MobaXterm是不可能的任务,因为它是专为Windows设计的,但Ubuntu系统提供了丰富的原生工具和替代方案,足以满足远程管理、文件传输等需求。如果你对MobaXterm的特定功能有强烈需求,考虑采用Windows子系统或虚拟机方案作为折衷方案,不失为一种可行之道。在追求高效工作流的同时,不妨也探索和熟悉Linux原生工具,它们往往能提供更为无缝的集成体验。
1074 0