Ubuntu 设置自动挂载 SD 卡,扩容根目录
一、前言
由于手上的 Jetson Nano 开发板为板载 16G emmc,但是安装完 CUDA 套件后,只剩可怜的2-3G容量,想下载一些库和源码是真的捉襟见肘。
于是想将一些可重复下载的,不怕丢失的文件,放到外扩的 SD 卡中,即使坏了就重新下载和编译即可。
二、设置 SD 卡
由于 SD 卡是长期挂载,不随意移除,所以建议格式化为 Ubuntu 下兼容性更好的 ext4 格式。exFAT 可以和 Windows 共同使用,但是不在我的考虑范围,并且有最大文件限制。
我使用了 64G 的空白 SD 卡,可以使用 fdisk 重新分区:
sudo fdisk /dev/mmcblk1
我只保留了一个分区,然后格式化为 ext4 格式:
sudo mkfs.ext4 /dev/mmcblk1p1
三、设置自动挂载
1、选择一个想要挂载的目录
我比较喜欢在 ~ 目录下操作,也就是 home 下,这样权限更宽松,读者也可以放在 / 根目录下。
mkdir ~/sd_card
2、查看 sd 卡分区 UUID
sudo blkid /dev/mmcblk1p1
/dev/mmcblk1p1: UUID="77469ca8-73ed-41ca-bf6a-bdd55affbd14" TYPE="ext4" PARTLABEL="Basic data partition" PARTUUID="78454ccc-ca8d-4548-99f1-e712cca72480"
将 UUID 部分暂时保留。
3、填写 /etc/fstab
sudo vi /etc/fstab
在末尾添加字段:
UUID=77469ca8-73ed-41ca-bf6a-bdd55affbd14 /home/user/sd_card ext4 defaults,nofail,noatime,user 0 2
读者注意修改 UUID 和要挂载的目录,还有文件系统的格式。
后面的参数分别代表:
nofail
:即使SD卡不存在,系统也能正常启动。user
:允许普通用户挂载/卸载(可选)。noatime
:减少写入次数,延长SD卡寿命。
4、加载配置
使用以下命令重新加载挂载配置:
sudo mount -a
如果没有报错,执行 lsblk 查看挂载结果:
四、总结
该方法适用于不担心数据丢失和开发板扩容的解决方案,毕竟 SD 卡众所周知,指不定哪天就 G 了,运气好能用好几年。