LFCS 系列第五讲:如何在 Linux 中挂载/卸载本地文件系统和网络文件系统(Samba 和 NF

简介:

LFCS 系列第五讲:如何在 Linux 中挂载/卸载本地文件系统和网络文件系统(Samba 和 NF





Linux 基金会已经发起了一个全新的 LFCS(Linux 基金会认证系统管理员Linux Foundation Certified Sysadmin)认证,旨在让来自世界各地的人有机会参加到 LFCS 测试,获得关于有能力在 Linux 系统中执行中间系统管理任务的认证。该认证包括:维护正在运行的系统和服务的能力、全面监控和分析的能力以及何时向上游团队请求支持的决策能力。

Linux Foundation Certified Sysadmin – Part 5

LFCS 系列第五讲

请看以下视频,这里边介绍了 Linux 基金会认证程序。

本讲是系列教程中的第五讲,在这一讲里边,我们会解释如何在 Linux 中挂载/卸载本地和网络文件系统。这些都是 LFCS 认证中的必备知识。

挂载文件系统

在个硬盘分好区之后,Linux 需要通过某些方式对硬盘分区上的数据进行访问。Linux 并不会像 DOS 或者 Windows 那样给每个硬盘分区分配一个字母来作为盘符,而是将硬盘分区挂载到统一的目录树上的挂载点。

挂载点是一个目录,挂载是一种访问分区上文件系统的方法,挂载文件系统实际上是将一个确切的文件系统(比如一个分区)和目录树中指定的目录联系起来的过程。

换句话说,管理存储设备的第一步就是把设备关联到文件系统树。要完成这一步,通常可以这样:用 mount 命令来进行临时挂载(用完的时候,使用 umount 命令来卸载),或者通过编辑 /etc/fstab 文件之后重启系统来永久性挂载,这样每次开机都会进行挂载。

不带任何选项的 mount 命令,可以显示当前已挂载的文件系统。


  
  
  1. # mount

Check Mounted Filesystem in Linux

检查已挂载的文件系统

另外,mount 命令通常用来挂载文件系统。其基本语法如下:


  
  
  1. # mount -t type device dir -o options

该命令会指引内核将在设备上找到的文件系统(如已格式化为指定类型的文件系统)挂载到指定目录。像这样的形式,mount 命令不会再到 /etc/fstab 文件中进行确认。

除非像下面,挂载指定的目录或者设备:


  
  
  1. # mount /dir -o options
  2. # mount device -o options

mount 命令会尝试寻找挂载点,如果找不到就会查找设备(上述两种情况下,mount 命令会在 /etc/fstab 查找相应的设备或挂载点),最后尝试完成挂载操作(这个通常可以成功执行,除非你的挂载点或者设备正在使用中,或者你调用 mount 命令的时候没有 root 权限)。

你可以看到,mount 命令的每行输出都是如下格式:


  
  
  1. device on directory type (options)

例如:


  
  
  1. /dev/mapper/debian-home on /home type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered)

读作:

设备 dev/mapper/debian-home 挂载在 /home 下,它被格式化为 ext4,并且有以下挂载选项: rw,relatime,user_xattr,barrier=1,data=ordered。

mount 命令选项

下面列出 mount 命令的常用选项

  • async:允许在将要挂载的文件系统上进行异步 I/O 操作
  • auto:标示该文件系统通过 mount -a 命令挂载,与 noauto 相反。
  • defaults:该选项相当于 async,auto,dev,exec,nouser,rw,suid 的组合。注意,多个选项必须由逗号隔开并且中间没有空格。倘若你不小心在两个选项中间输入了一个空格,mount 命令会把后边的字符解释为另一个参数。
  • loop:将镜像文件(如 .iso 文件)挂载为 loop 设备。该选项可以用来模拟显示光盘中的文件内容。
  • noexec:阻止该文件系统中可执行文件的执行。与 exec 选项相反。
  • nouser:阻止任何用户(除 root 用户外) 挂载或卸载文件系统。与 user 选项相反。
  • remount:重新挂载文件系统。
  • ro:只读模式挂载。
  • rw:读写模式挂载。
  • relatime:只要访问时间早于修改时间,就更新文件的的访问时间。
  • user_xattr:允许用户设置和移除可扩展文件系统属性。

以 ro 和 noexec 模式挂载设备


  
  
  1. # mount -t ext4 /dev/sdg1 /mnt -o ro,noexec

在本例中,我们可以看到,在挂载点 /mnt 中尝试写入文件或者运行可执行文件都会显示相应的错误信息。


  
  
  1. # touch /mnt/myfile
  2. # /mnt/bin/echo Hi there

Mount Device in Read Write Mode

可读写模式挂载设备

以默认模式挂载设备

以下场景,我们在重新挂载设备的挂载点中,像上例一样尝试你写入文件和运行可执行文件。


  
  
  1. # mount -t ext4 /dev/sdg1 /mnt -o defaults

Mount Device in Linux

挂载设备

在这个例子中,我们发现写入文件和命令都完美执行了。

卸载设备

使用 umount 命令卸载设备,意味着将所有的“在使用”数据全部写入到文件系统,然后可以安全移除文件系统。请注意,倘若你移除一个没有事先正确卸载的设备,就会有造成设备损坏和数据丢失的风险。

也就是说,你必须“离开”设备的块设备描述符或者挂载点,才能卸载设备。换言之,你的当前工作目录不能是需要卸载设备的挂载点。否则,系统将返回设备繁忙的提示信息。

Unmount Device in Linux

卸载设备

离开需卸载设备的挂载点最简单的方法就是,运行不带任何选项的 cd 命令,这样会回到当前用户的家目录。

挂载常见的网络文件系统

最常用的两种网络文件系统是 SMB(服务器消息块Server Message Block)和 NFS(网络文件系统Network File System)。如果你只向类 Unix 客户端提供共享,用 NFS 就可以了,如果是向 Windows 和其他类 Unix 客户端提供共享服务,就需要用到 Samba 了。

扩展阅读

下面的例子中,假设 Samba 和 NFS 已经在地址为 192.168.0.10 的服务器上架设好了(请注意,架设 NFS 服务器也是 LFCS 考试中需要考核的能力,我们会在后边中提到)。

在 Linux 中挂载 Samba 共享

第一步:在 Red Hat 以 Debian 系发行版中安装 samba-client、samba-common 和 cifs-utils 软件包,如下:


  
  
  1. # yum update && yum install samba-client samba-common cifs-utils
  2. # aptitude update && aptitude install samba-client samba-common cifs-utils

然后运行下列命令,查看服务器上可用的 Samba 共享。


  
  
  1. # smbclient -L 192.168.0.10

并输入远程机器上 root 账户的密码。

Mount Samba Share in Linux

挂载 Samba 共享

上图中,已经对可以挂载到我们本地系统上的共享进行高亮显示。你只需要与一个远程服务器上的合法用户名及密码就可以访问共享了。

第二步:当挂载有密码保护的网络文件系统时候,将你的访问凭证写入到 /etc/fstab 文件中并非明智的选择。你需要将这些信息写入到具有 600 权限的隐藏文件中,像这样:


  
  
  1. # mkdir /media/samba
  2. # echo username=samba_username > /media/samba/.smbcredentials
  3. # echo password=samba_password >> /media/samba/.smbcredentials
  4. # chmod 600 /media/samba/.smbcredentials

第三步:然后将下面的内容添加到 /etc/fstab 文件中。


  
  
  1. # //192.168.0.10/gacanepa /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0

第四步:现在可以挂载你的 Samba 共享了。手动挂载(mount //192.168.0.10/gacanepa)或者重启系统并应用 /etc/fstab 中相应行来用就挂载都可以。

Mount Password Protect Samba Share

挂载有密码保护的 Samba 共享

在 Linux 系统中挂载 NFS 共享

第一步:在 Red Hat 以 Debian 系发行版中安装 nfs-common 和 portmap 软件包。如下:


  
  
  1. # yum update && yum install nfs-utils nfs-utils-lib
  2. # aptitude update && aptitude install nfs-common

第二步:为 NFS 共享创建挂载点。


  
  
  1. # mkdir /media/nfs

第三步:将下面的内容添加到 /etc/fstab 文件中。


  
  
  1. 192.168.0.10:/NFS-SHARE /media/nfs nfs defaults 0 0

第四步:现在可以挂载你的 Samba 共享了。手动挂载(mount 192.168.0.10:/NFS-SHARE)或者重启系统并应用 /etc/fstab 中相应行来用就挂载都可以。

Mount NFS Share in Linux

挂载 NFS 共享

永久性挂载文件系统

像前面两个例子那样,/etc/fstab 控制着Linux如何访问硬盘分区及可移动设备。/etc/fstab 由六个字段的内容组成,各个字段之间通过一个空格符或者制表符来分开。井号(#)开始的行只是会被忽略的注释。

每一行都按照这个格式来写入:


  
  
  1. <file system> <mount point> <type> <options> <dump> <pass>

其中:

  • <file system>: 第一个字段指定挂载的设备。大多数发行版本都通过分区的标卷(label)或者 UUID 来指定。这样做可以避免分区号改变时带来的错误。
  • <mount point>: 第二个字段指定挂载点。
  • <type> :文件系统的类型代码与 mount 命令挂载文件系统时使用的类型代码是一样的。通过 auto 类型代码可以让内核自动检测文件系统,这对于可移动设备来说非常方便。注意,该选项可能不是对所有文件系统可用。
  • <options>: 一个(或多个)挂载选项。
  • <dump>: 你可能把这个字段设置为 0(否则设置为 1),使得系统启动时禁用 dump 工具(dump 程序曾经是一个常用的备份工具,但现在越来越少用了)对文件系统进行备份。
  • <pass>: 这个字段指定启动系统是是否通过 fsck 来检查文件系统的完整性。0 表示 fsck 不对文件系统进行检查。数字越大,优先级越低。因此,根分区(/)最可能使用数字 1,其他所有需要检查的分区则是以数字 2.

Mount 命令例示

1、在系统启动时,通过 TECMINT 标卷来挂载文件系统,并具备 rw 和 noexec 属性,你应该将以下语句添加到 /etc/fstab 文件中。


  
  
  1. LABEL=TECMINT /mnt ext4 rw,noexec 0 0

2、若你想在系统启动时挂载 DVD 光驱中的内容,添加以下语句。


  
  
  1. /dev/sr0 /media/cdrom0 iso9660 ro,user,noauto 0 0

其中 /dev/sr0 为你的 DVD 光驱。

总结

不用怀疑,在命令行中挂载/卸载本地和网络文件系统将是你作为系统管理员的日常责任的一部分。同时,你需要掌握 /etc/fstab 文件的编写。希望本文对你有帮助。随时在下边发表评论(或者提问),并分享本文到你的朋友圈。

参考链接



本文来自云栖社区合作伙伴“Linux中国”
原文发布时间为:2013-04-02.
相关文章
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
71 2
|
13天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
1月前
|
域名解析 网络协议 安全
|
1月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
73 8
|
2月前
|
运维 监控 网络协议
|
1月前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
51 7
|
1月前
|
存储 Ubuntu Linux
2024全网最全面及最新且最为详细的网络安全技巧 (三) 之 linux提权各类技巧 上集
在本节实验中,我们学习了 Linux 系统登录认证的过程,文件的意义,并通过做实验的方式对 Linux 系统 passwd 文件提权方法有了深入的理解。祝你在接下来的技巧课程中学习愉快,学有所获~和文件是 Linux 系统登录认证的关键文件,如果系统运维人员对shadow或shadow文件的内容或权限配置有误,则可以被利用来进行系统提权。上一章中,我们已经学习了文件的提权方法, 在本章节中,我们将学习如何利用来完成系统提权。在本节实验中,我们学习了。
|
2月前
|
Ubuntu Linux 虚拟化
Linux虚拟机网络配置
【10月更文挑战第25天】在 Linux 虚拟机中,网络配置是实现虚拟机与外部网络通信的关键步骤。本文介绍了四种常见的网络配置方式:桥接模式、NAT 模式、仅主机模式和自定义网络模式,每种模式都详细说明了其原理和配置步骤。通过这些配置,用户可以根据实际需求选择合适的网络模式,确保虚拟机能够顺利地进行网络通信。
104 1
|
2月前
|
网络协议 安全 Ubuntu
Linux中网络连接问题
【10月更文挑战第3天】
36 1
|
2月前
|
Linux
linux开机挂载镜像
【10月更文挑战第1天】在 Linux 系统中,开机挂载镜像通常涉及几个关键步骤,包括创建挂载点、编辑配置文件以及重新加载配置
96 0