编辑 1:设法使用拔电源插头技术重新启动我的服务器,现在可以 ssh 和调试:)
发布这个是因为此刻我的 pi 崩溃了,因为我怀疑 SD 卡上没有更多空间了,但我正在使用目录中的 FTP 上传到我的外部硬盘/media/nvme/some/folder/
在崩溃之前获取了所有这些信息,目前我甚至无法再使用 ssh。我将尝试手动删除一些文件,取出 SD 卡并重新启动 pi
2TB nvme 安装在/media/nvme
,du -sh /media/nvme/
仅提供 68GB 的使用空间,因此空间充足。我有一个homepage
使用配置运行的服务
- resources:
cpu: true
memory: true
disk:
- /
- /nvme # mounted in docker with /media/nvme:/nvme:ro
主页磁盘使用情况均显示剩余空间为 0
这可能是什么原因造成的
以下是我在崩溃前执行的一些调试命令;请注意,/dev/sda1
nvme 没有显示df
在fdisk
sudo fdisk -l
Disk /dev/sda: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: Forty
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5e4c525d
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 3907029167 3907027120 1.8T 83 Linux
df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 3728372 0 3728372 0% /dev
tmpfs 799744 3008 796736 1% /run
/dev/mmcblk0p2 122383952 117122864 0 100% /
tmpfs 3998704 0 3998704 0% /dev/shm
tmpfs 5120 16 5104 1% /run/lock
/dev/mmcblk0p1 522232 66670 455562 13% /boot/firmware
tmpfs 799740 0 799740 0% /run/user/1000
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1.8T 0 disk
└─sda1 8:1 0 1.8T 0 part
mmcblk0 179:0 0 119.1G 0 disk
├─mmcblk0p1 179:1 0 512M 0 part /boot/firmware
└─mmcblk0p2 179:2 0 118.6G 0 part /
cat /etc/fstab
proc /proc proc defaults 0 0
PARTUUID=359da976-01 /boot/firmware vfat defaults 0 2
PARTUUID=359da976-02 / ext4 defaults,noatime 0 1
ls -l /dev/disk/by-uuid/*
lrwxrwxrwx 1 root root 15 Dec 8 15:15 /dev/disk/by-uuid/3b614a3f-4a65-4480-876a-8a998e01ac9b -> ../../mmcblk0p2
lrwxrwxrwx 1 root root 15 Dec 8 15:15 /dev/disk/by-uuid/5DF9-E225 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 10 Dec 8 15:15 /dev/disk/by-uuid/c4aa43d1-a9bc-498c-8549-653c5e929fc2 -> ../../sda1
ls /media/
nvme
sudo du -sh /media/nvme/
68G /media/nvme/
不是。您的
df
和lsblk
输出显示它当前根本没有安装在任何地方,因此当前代表SD 卡上的/media/nvme
目录,并且绑定安装到 Docker 容器中的只是同一个目录。听起来你好像手动安装了一次,但忘记将它添加到
/etc/fstab
- 它定义了在系统启动时应该安装什么 - 所以 Pi 稍后重新启动,并且 NVMe 存储从未再次安装,而是/media/nvme
作为文件系统内的一个空目录保留/
。再次手动挂载它(在其他地方,例如在 /mnt 上),然后从当前“SD 卡”/media/nvme 移动所有文件(常规
mv -v
应该可以工作),然后卸载并添加 fstab 条目,以便下次自动挂载它。由于 NVMe SSD 似乎是通过 USB 作为外部磁盘连接的——而且这是一台没有显示器/键盘的 Raspberry Pi——将 fstab 条目标记为
nofail
(这样系统在没有连接的情况下仍然可以启动)可能是一个好主意,但也让Docker 专门依赖它:x-systemd.required-by=docker.service
作为 fstab 选项,或者运行systemctl edit docker
后添加到服务配置中。这样,Docker 将等待磁盘连接,并且不会尝试将空的 /media/nvme 绑定到容器中,同时该
nofail
选项将防止系统的其余部分卡在“紧急模式”提示符处。替代方法:仍然使用该
nofail
选项,但不是将 /media/nvme 专门绑定到容器中,而是将整个容器/media
与shared
传播模式绑定(例如,/media:/media:ro,shared
如果我的语法正确的话)。这样,即使稍后完成 NVMe 挂载(当 Docker 已运行时),它也会在容器内可见。