Linux 下通过命令行挂载设备

1. 挂载 U 盘
首先,确保 U 盘已经插入计算机。
1.2 查看设备信息
使用 lsblk
或 fdisk -l
命令来列出系统中所有的存储设备,包括 U 盘。一般来说,U 盘会显示为类似 /dev/sdb1
或 /dev/sdc1
的设备。
1 | lsblk |
加上 -f
参数可以显示磁盘的 UUID
。
或者:
1 | sudo fdisk -l |
输出可能类似于:
1 | /dev/sdb1 ext4 15G 8G 7G 60% /media/sky/USB |
此处 /dev/sdb1
是 U 盘的设备路径。
1.3 创建挂载点
挂载点是一个空目录,用于访问 U 盘中的文件。你可以选择将 U 盘挂载到一个现有目录,也可以创建一个新目录作为挂载点。
例如,创建一个新的挂载点 usb
:
1 | sudo mkdir /mnt/usb |
也可以选择其他路径,例如 /media/usb
或 /home/sky/usb
。
1.4 挂载 U 盘
将 U 盘挂载到刚才创建的挂载点。假设你的 U 盘设备是 /dev/sdb1
,你可以执行以下命令:
1 | sudo mount /dev/sdb1 /mnt/usb |
如果挂载成功,使用 ls /mnt/usb
或 lsblk
可以看到 U 盘的内容。
1.5 查看挂载情况
你可以使用 df -h
或 lsblk
查看所有挂载的设备,确认 U 盘是否成功挂载:
1 | df -h |
或者:
1 | lsblk |
1.6 卸载 U 盘
完成对 U 盘的操作后,记得安全卸载。使用 umount
命令:
1 | sudo umount /mnt/usb |
如果挂载的目录不为空,或者使用 umount
时出现“设备忙”的错误,可以使用以下命令强制卸载:
1 | sudo umount -l /mnt/usb |
1.7 总结
- 使用
lsblk
或fdisk -l
查找 U 盘设备路径(例如/dev/sdb1
)。 - 创建一个空目录作为挂载点。
- 使用
sudo mount /dev/sdb1 /mnt/usb
将 U 盘挂载到该目录。 - 使用
sudo umount /mnt/usb
卸载 U 盘。
如果你的 U 盘有特定的格式(如 NTFS、FAT32 等),也许需要安装特定的工具来支持该格式的挂载,如 ntfs-3g
(对于 NTFS 格式)。
2. 挂载磁盘设备(扩容)
该方式是挂载子目录(更简单,但不改变根分区大小),如果不想用 LVM,可以将新磁盘挂载到某个子目录下,比如 /home
、/var
等。
2.1 分区与格式化
1 | sudo fdisk /dev/sdb |
- 创建新分区(
n
) - 保存并退出(
w
)
格式化:
1 | sudo mkfs.ext4 /dev/sdb1 |
mkfs.ext4
等价于mkfs -t ext4
。
2.2 挂载新磁盘
临时挂载到 /mnt/sdb1
:
1 | sudo mkdir -p /mnt/sdb1 |
1 | sudo mount /dev/sdb1 /mnt/sdb1 |
如果希望将其永久挂载到 /home
:
- 先临时挂载到
/mnt/sdb1
:
1 | sudo mkdir -p /mnt/sdb1 |
1 | sudo mount /dev/sdb1 /mnt/sdb1 |
备份
/home
数据:1
sudo rsync -a /home/ /mnt/sdb1/
获取 UUID:
1
blkid /dev/sdb1
编辑
/etc/fstab
:1
UUID=xxxxx /home ext4 defaults 0 2
重新挂载:
1
2
3sudo rm /home/$USER/ -rf
sudo umount /mnt/sdb1
sudo mount -a然后执行重启命令
reboot
。当你将磁盘挂载到/home
目录时,挂载操作会暂时遮盖掉/home
目录中的现有内容。也就是说,挂载后,/home
目录下的内容将会变成新挂载磁盘的内容,而原先的/home
目录下的文件将变得不可见。这些文件并没有被删除,只是暂时隐藏,它们仍然存在于磁盘上。你可以通过卸载磁盘(sudo umount /home
)查看这些原始文件。如果你希望保留原来的/home
内容,建议先将原来的文件备份到其他地方,或者在挂载之前将/home
目录的内容移动到另一个临时位置。
2.3 检查挂载
1 | df -h /home |
3. 挂载 Windows 的磁盘分区(双系统)
示例:
1 | NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS |
3.1 确认 Windows 分区信息
从 lsblk -f
输出中,可以看到 Windows 磁盘的 NTFS 分区:
nvme1n1p3
→ 系统分区,UUID:95519C376F55F65F
nvme1n1p4
→ 软件分区,UUID:321ABC035AB41F42
3.2 安装 NTFS 支持工具
可能需要安装 ntfs-3g
来挂载 NTFS 文件系统:
1 | sudo pacman -S ntfs-3g |
3.3 创建挂载点
为每个分区创建挂载目录:
1 | sudo mkdir -p /mnt/windows_system |
3.4 挂载分区
3.4.1 手动挂载(临时)
挂载 Windows 系统分区:
1 | sudo mount -t ntfs3 /dev/nvme1n1p3 /mnt/windows_system |
挂载 Windows 软件分区:
1 | sudo mount -t ntfs3 /dev/nvme1n1p4 /mnt/windows_software |
验证挂载情况:
1 | lsblk -f |
挂载成功后可以查看挂载目录内容:
1 | ls /mnt/windows_system |
3.4.2 自动挂载(持久化)
编辑 /etc/fstab
,添加以下内容:
1 | UUID=95519C376F55F65F /mnt/windows_system ntfs3 defaults 0 0 |
生效配置:
1 | sudo mount -a |
3.5 解决 Windows 快速启动问题
如果挂载时遇到 “Windows is hibernated” 错误,是因为 Windows 开启了 快速启动,需要关闭。
关闭 Windows 快速启动:
在 Windows 中:
- 控制面板 → 电源选项 → 选择电源按钮的功能
- 取消勾选 启用快速启动(推荐)
- 重新启动 Windows 并进入 Linux
或者强制挂载(不推荐):
1 | sudo mount -t ntfs3 -o remove_hiberfile /dev/nvme1n1p3 /mnt/windows_system |
3.6 断开挂载
如果不再需要挂载,可以使用以下命令卸载:
1 | sudo umount /mnt/windows_system |
4. /etc/fstab
文件说明
4.1 示例
示例:
1 | # /etc/fstab: static file system information. |
4.2 说明
每一行在 /etc/fstab
文件中都包含了 6 个字段,分别是:
- 设备或 UUID (磁盘或分区)
- 挂载点 (文件夹路径)
- 文件系统类型 (例如
ext4
,vfat
,tmpfs
等) - 挂载选项 (如
defaults
,noatime
,umask
等) - 转储选项 (用于备份),
0
表示该文件系统不需要备份。如果该字段为1
,表示该文件系统会被dump
命令处理。 - 文件系统检查顺序 (通常是
1
或2
)
关于示例中 noatime
和 umask
的含义:
noatime
是一个挂载选项,表示 不更新文件的访问时间(atime
) 。这对于提高性能非常有帮助,特别是在数据库或需要频繁读写的场景下,因为它减少了磁盘的写操作。默认情况下,每次访问文件(读取)时,文件的 访问时间(atime
) 会被更新。使用noatime
可以避免这种情况,从而提升性能,尤其是在频繁访问文件的情况下。umask
用于设置新创建文件和目录的默认权限。umask=0077
意味着 默认权限为 700 ,即 只有文件的所有者 有读写执行权限,其他用户没有任何权限。umask
是通过掩码值来限制权限的,它是通过从默认权限(通常是 666 对于文件,777 对于目录)中减去掩码值来计算实际权限。
例如:
- 默认权限:
666
(文件的读写权限) - 掩码
0077
:减去 77 后,结果是600
,意味着 文件只有所有者可以读写,而其他人没有权限。
- Title: Linux 下通过命令行挂载设备
- Author: loskyertt
- Created at : 2025-02-20 16:02:30
- Updated at : 2025-02-23 03:19:05
- Link: https://redefine.ohevan.com/2025/02/20/Linux挂载设备/
- License: This work is licensed under CC BY-NC-SA 4.0.