收集云服务器优惠信息
记录云服务器使用心得

Linux系统挂载本地和网络(Samba和NFS)文件系统教程

众所周知,一旦磁盘被分区,Linux系统就需要某种方式来访问分区上的数据。与DOS或Windows(通过为每个分区分配驱动器号来完成)不同,Linux使用统一的目录树,其中每个分区都安装在该树中的安装点上。

挂载点(mount point)是一个目录,用于访问分区上的文件系统,挂载文件系统是将某个文件系统(例如分区)与目录树中的特定目录关联起来的过程。换句话说,管理存储设备的第一步是将设备附加到文件系统树。此任务可以使用mount等工具一次性完成(然后使用umount卸载),也可以通过编辑/etc/fstab文件在重新启动后持续完成。

在Linux中挂载文件系统

mount命令(不带任何选项或参数)显示当前安装的文件系统,如下图所示:

# mount

检查已挂载的文件系统

此外,mount用于将文件系统挂载到文件系统树中,其标准语法如下:

# mount -t type device dir -o options

此命令指示内核使用所有选项将设备上找到的文件系统(例如,已使用文件系统类型格式化的分区)挂载到目录dir。在这种形式下,mount不会在/etc/fstab中查找指令。例如,如果仅指定目录或设备:

# mount /dir -o options
或
# mount device -o options

mount命令尝试查找挂载点,如果找不到,则搜索设备(这两种情况都在/etc/fstab文件中),最后尝试完成挂载操作(通常会成功,除了目录或设备已被使用,或者调用挂载的用户不是root时的情况)。

可能你会注意到安装输出中的每一行都具有以下格式:

device on directory type (options)

例如:

/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的别名。请注意,多个选项必须用逗号分隔,不能有任何空格。如果你不小心在选项之间键入了空格,安装程序会将后续文本字符串解释为另一个参数。
  • Loop:将映像(例如 .iso 文件)安装为循环设备。此选项可用于模拟光盘内容在光学介质读取器中的存在。
  • noexec:阻止在特定文件系统上执行可执行文件,它与exec相反。
  • nouser:阻止任何用户(root除外)挂载和卸载文件系统,它与user相反。
  • remount:如果文件系统已经挂载,则再次挂载该文件系统。
  • ro:将文件系统安装为只读。
  • rw:挂载具有读写功能的文件系统。
  • relatime:仅当atime早于mtime时才更新文件的访问时间。
  • user_xattr:允许用户设置和远程扩展文件系统属性。

使用ro和noexec选项安装设备

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

在这种情况下,可以看到尝试写入文件或运行位于安装点内的二进制文件将会失败,并显示相应的错误消息:

# touch /mnt/myfile
# /mnt/bin/echo “Hi there”

挂载设备读写

使用默认选项安装设备

在以下场景中,尝试将文件写入新安装的设备,并使用与上一示例中相同的命令运行位于其文件系统树中的可执行文件:

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

安装设备

在后一种情况下,它已经被成功的执行了。

在Linux中卸载文件系统

卸载设备(使用umount命令)意味着完成写入所有剩余的“传输中”数据,以便可以安全地删除它。请注意,如果在未先正确卸载的情况下尝试删除已安装的设备,则可能会损坏设备本身或导致数据丢失。

话虽这么说,为了更好的卸载设备,必须“位于”其块设备描述符或安装点之外。换句话说,当前的工作目录必须是安装点以外的其它目录。否则,将收到一条消息,提示设备正忙。

卸载设备

“退出”挂载点的一个简单方法是输入cd命令,在缺少参数的情况下,该命令会将我们带到当前用户的主目录,如上所示。

安装Samba和NFS网络文件系统

最常用的两种网络文件系统是SMB(代表“服务器消息块”)和NFS(“网络文件系统”)。如果只需要为类Unix客户端设置共享,很可能会使用NFS;如果需要与基于Windows的客户端以及其它类Unix客户端共享文件,可能会选择Samba 。

以下步骤假设已在IP 192.168.0.10的服务器中设置了Samba和NFS共享,示例仅供参考。

在Linux上挂载Samba共享

1、首先,在基于Red Hat和Debian的发行版上安装samba-client samba-common和cifs-utils软件包,命令如下:

# yum update && yum install samba-client samba-common cifs-utils
# apt update && apt install samba-client samba-common cifs-utils

然后运行以下命令在服务器中查找可用的samba共享,命令如下:

# smbclient -L 192.168.0.10

并输入远程计算机中root帐户的密码。

Samba共享

在上图中,突出显示了准备在本地系统上安装的共享,这时候你需要在远程服务器上提供有效的Samba用户名和密码才能访问它。

2、安装受密码保护的网络共享时,最好不要将凭据写入/etc/fstab文件中。相反,可以将它们存储在权限设置为600的隐藏文件中,命令如下:

# mkdir /media/samba
# echo “username=samba_username” > /media/samba/.smbcredentials
# echo “password=samba_password” >> /media/samba/.smbcredentials
# chmod 600 /media/samba/.smbcredentials

3、然后将以下行添加到/etc/fstab文件中:

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

4、现在,可以手动(mount//192.168.0.10/gacanepa)或重新启动机器来mount Samba共享,以便永久应用/etc/fstab中所做的更改:

# mount -a

装载密码保护Samba共享

在Linux上挂载NFS共享

1、首先,在 Red Hat和基于Debian的发行版上安装nfs-common和portmap 软件包,命令如下:

# yum update && yum install nfs-utils nfs-utils-lib 
# apt update && apt install nfs-common

2、为NFS 共享创建挂载点,命令如下:

# mkdir /media/nfs

3、将以下行添加到/etc/fstab文件中:

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

4、现在可以手动挂载nfs共享 ( mount 192.168.0.10:/NFS-SHARE ) 或重新启动计算机,以便永久应用/etc/fstab中所做的更改。

挂载NFS共享

在Linux中永久挂载文件系统

如前两个示例所示,/etc/fstab文件控制Linux如何提供对磁盘分区和可移动媒体设备的访问,并由一系列行组成,每行包含六个字段。这些字段由一个或多个空格或制表符分隔,以井号 ( # ) 开头的行是注释,会被忽略。每行具有以下格式:

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

其中:

  • <file system>:第一列指定挂载设备。大多数发行版现在通过标签或UUID指定分区。如果分区编号发生变化,这种做法可以帮助减少问题。
  • <mount point>:第二列指定挂载点。
  • <type>:文件系统类型代码与使用mount命令挂载文件系统时使用的类型代码相同。文件系统类型代码auto让内核自动检测文件系统类型,这对于可移动媒体设备来说是一个方便的选项。请注意,此选项可能不适用于所有文件系统。
  • <options>:一个(或多个)安装选项。
  • <dump>:很可能将其保留为0(否则将其设置为 1)以禁用转储实用程序在启动时备份文件系统(转储程序曾经是一种常见的备份工具,但如今已不太流行。)
  • <pass>:此列指定是否应在引导时使用fsck检查文件系统的完整性。0表示fsck不应检查文件系统。数字越大,优先级越低。因此,根分区的值很可能为1,而应检查的所有其他分区的值应为2。

Mount示例

1、要在引导时使用rw和noexec属性挂载带有标签ECSCOUPON的分区,应该在/etc/fstab文件中添加以下行:

LABEL=ECSCOUPON /mnt ext4 rw,noexec 0 0

2、如果希望DVD驱动器中的磁盘内容在启动时可用,输入以下命令:

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

其中/dev/sr0是你的DVD驱动器。

总结

可以看出,从命令行挂载和卸载本地和网络文件系统将是Linux系统管理员的日常工作,所以务必要掌握以上基础内容。此外,你还需要掌握/etc/fstab相关知识内容。

众所周知,Linux挂载文件系统的意义在于将一个文件系统连接到Linux文件系统的特定目录,使得文件系统中的文件和目录可以在Linux系统中访问和操作。简单来说,挂载文件系统是Linux中非常重要的操作,它允许将不同的存储资源整合到一个统一的文件系统层次结构中,以便更好地管理、访问和共享数据。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《Linux系统挂载本地和网络(Samba和NFS)文件系统教程》
文章链接:https://www.ecscoupon.com/1573.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!