Appearance
在 Linux 系统里,挂载操作能让我们访问不同存储设备(像移动硬盘、U 盘、光盘等)里的数据。下面为你详细介绍挂载的各个方面。
一、基本概念
挂载就是把一个文件系统连接到 Linux 文件目录树的特定位置,这个位置被称为挂载点。一旦挂载成功,存储设备里的数据就能通过挂载点来访问。
二、准备工作
2.1 确认设备是否被识别
使用 lsblk 命令查看系统已识别的存储设备,它会以树形结构列出块设备信息,如硬盘、分区等。示例如下:
lsblk输出可能类似这样:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 464.3G 0 part /
sdb 8:16 0 149.1G 0 disk这里的 sdb 可能就是我们要挂载的新硬盘。
2.2 查看分区和文件类型
使用 fdisk -l 命令查看磁盘分区情况:
sudo fdisk -l使用 blkid 命令查看分区的文件系统类型,例如查看 /dev/sdb1 分区的文件系统类型:
blkid /dev/sdb12.3 对未分区的磁盘分区
若新磁盘没有分区,可使用 fdisk 或 parted 工具来分区,这里以 fdisk 为例:
sudo fdisk /dev/sdb # 假设要分区的磁盘是 /dev/sdb进入 fdisk 交互模式后,按以下步骤操作:
- 输入
n新建分区。 - 输入
p选择主分区。 - 按提示输入分区号、起始扇区等信息。
- 输入
w保存分区表并退出。
三、挂载分区
3.1 临时挂载
临时挂载在系统重启后挂载信息会丢失,适合临时使用存储设备的场景。
sudo mkdir /mnt/newdisk3.1.1 执行挂载命令
使用 mount 命令进行挂载,基本语法是 mount [选项] 设备名 挂载点。例如,将 /dev/sdb1 分区挂载到 /mnt/newdisk。
sudo mount /dev/sdb1 /mnt/newdisk3.1.2 验证挂载
使用 df -h 命令查看挂载情况,它会以人类可读的格式显示磁盘使用信息:
df -h输出中会显示 /dev/sdb1 已挂载到 /mnt/newdisk。
3.2 永久挂载
永久挂载在系统重启后依然有效,需要修改 /etc/fstab 文件。
3.2.1 编辑/etc/fstab文件:
使用文本编辑器(如 vim)打开该文件:
sudo vim /etc/fstab3.2.2 添加挂载信息
在文件末尾添加一行,格式为 设备名 挂载点 文件系统类型 挂载选项 转储频率 文件系统检查顺序。例如,将 /dev/sdb1 分区挂载到 /mnt/newdisk,文件系统类型为 ext4:
/dev/sdb1 /mnt/newdisk ext4 defaults 0 0这里的 defaults 表示使用默认的挂载选项,0 表示不进行转储操作,第二个 0 表示不进行文件系统检查。
3.2.3 保存并退出
在 vim 中,按下 Esc 键,输入 :wq 保存并退出。
3.2.4 验证挂载信息
使用 mount -a 命令来测试 /etc/fstab 文件中的挂载配置是否正确,如果没有报错,说明配置无误:
sudo mount -a四、挂载特殊设备
4.1 挂载光盘
4.1.1 创建挂载点
一般使用 /media/cdrom 作为挂载点,如果该目录不存在,可创建它:
sudo mkdir -p /media/cdrom4.1.2 挂载光盘
使用 mount 命令挂载光盘设备(通常是 /dev/cdrom 或 /dev/sr0):
sudo mount /dev/cdrom /media/cdrom4.2 挂载 U 盘
4.2.1 创建挂载点
例如创建 /media/usb 作为挂载点:
sudo mkdir /media/usb4.2.2 挂载 U 盘
假设 U 盘设备为 /dev/sdc1:
sudo mount /dev/sdc1 /media/usb五、卸载挂载点
当不再需要访问存储设备时,可使用 umount 命令卸载挂载点,语法为 umount 挂载点 或 umount 设备名。例如:
sudo umount /mnt/newdisk或者
sudo umount /dev/sdb1注意,卸载前要确保没有程序正在使用该挂载点的文件,否则会提示设备忙。
六、挂载选项说明
6.1 挂载选项说明
在使用 mount 命令或编辑 /etc/fstab 文件时,可以使用一些挂载选项来满足不同需求,常见的选项如下:
ro:以只读模式挂载。rw:以读写模式挂载,这是默认选项。noexec:不允许在挂载的文件系统中执行二进制文件。nosuid:不允许设置 SUID 位的程序在挂载的文件系统中执行。