外置存储
您可以将外部硬盘、SSD或USB棒连接到Raspberry Pi上的任何USB端口,并挂载文件系统以访问存储在其上的数据。
默认情况下,您的Raspberry Pi会在/media/pi/HARD-DRIVE-LABEL
位置自动挂载一些流行的文件系统,如FAT、NTFS和HFS+。
::: tip
无桌面系统将不会自动挂载外置存储设备
:::
挂载存储设备
您可以将存储设备安装在特定的文件夹位置。通常在/mnt
文件夹中进行,例如/mnt/mydisk
。请注意,文件夹必须是空的。
- 将存储设备插入Raspberry Pi上的USB端口。
使用以下命令列出Raspberry Pi上的所有磁盘分区:
sudo lsblk -o UUID,NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL
Raspberry Pi使用挂载点
/
和/boot
。您的存储设备将显示在此列表中,以及任何其他连接的存储设备。- 使用“大小”、“标签”和“型号”列来标识指向您的存储设备的磁盘分区的名称。例如,` sda1 '。
- FSTYPE列包含文件系统类型。如果您的存储设备使用exFAT文件系统,请安装exFAT驱动程序:
sudo apt update
sudo apt install exfat-fuse
- 如果您的存储设备使用NTFS文件系统,您将对其拥有只读访问权限。如果要写入设备,可以安装ntfs-3g驱动程序:
sudo apt update
sudo apt install ntfs-3g
- 运行以下命令获取磁盘分区的位置:
sudo blkid
比如显示, /dev/sda1
- 创建一个目标文件夹作为存储设备的装载点。本例中使用的挂载点名称是
mydisk
。您可以指定自己选择的名称:
sudo mkdir /mnt/mydisk
- 在您创建的装载点装载存储设备:
sudo mount /dev/sda1 /mnt/mydisk
- 通过列出以下内容来验证存储设备是否已成功装载:
ls /mnt/mydisk
设置自动挂载
您可以修改fstab
文件,以定义Raspberry Pi启动时存储设备将自动安装的位置。在fstab
文件中,磁盘分区由通用唯一标识符(UUID)标识。
- 获取磁盘分区的UUID:
sudo blkid
- 从列表中找到磁盘分区,并记下UUID。比如
5c24-1453
。 - 使用命令行编辑器打开fstab文件,例如nano:
sudo nano /etc/fstab
- 在
fstab
文件中添加以下行:
UUID=5C24-1453 /mnt/mydisk fstype defaults,auto,users,rw,nofail 0 0
将fstype
替换为您的文件系统的类型,您可以在上面安装存储设备
的步骤2中找到,例如:ntfs
。
- 如果文件系统类型是FAT或NTFS,则在
nofail
后立即添加umask=000
,这将允许所有用户对存储设备上的每个文件进行完全读/写访问。
现在您已经在fstab
中设置了一个配置,您可以启动您的Raspberry Pi,无论是否连接了存储设备。在拔出设备之前,您必须关闭Raspberry Pi,或者使用下面卸载存储设备
中的步骤手动卸载它。
::: tip
如果您在树莓Pi启动时没有连接存储设备,树莓Pi将额外需要90秒才能启动。您可以在第4步中的nofail
之后添加x-systemd.device-timeout=30
将其缩短。这会将超时时间更改为30秒,这意味着系统在放弃尝试装载磁盘之前只会等待30秒。
:::
有关每个Linux命令的更多信息,请参考使用man
命令的特定手册页。例如,man fstab
。
卸载存储设备
当Raspberry Pi关闭时,系统会负责卸载存储设备,以便安全地将其拔出。如果您想要手动卸载设备,可以使用以下命令:
sudo umount /mnt/mydisk
如果您收到“目标繁忙”的错误,这意味着存储设备未卸载。如果没有显示错误,您现在可以安全地拔出设备。
target is busy
target is busy
消息意味着存储设备上有文件正在被程序使用。要关闭文件,请使用以下步骤。
- 关闭任何在存储设备上有打开文件的程序。
- 如果您打开了一个终端,请确保您不在存储设备所在的文件夹或其子文件夹中。
- 如果您仍然无法卸载存储设备,您可以使用“lsof”工具来检查哪个程序在设备上打开了文件。您需要首先使用
apt
安装lsof
:
sudo apt update
sudo apt install lsof
使用lsof
lsof /mnt/mydisk
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。