OSError: [Errno 28] No space left on device
首先在服务器端购买磁盘容量。
1.识别新磁盘
lsblk
可以看到 vdb
— 500G — 尚无分区✅
2 对磁盘进行分区
sudo fdisk /dev/vdb
然后按照以下顺序操作:
-
按
n
→新建分区 -
按
p
→主分区 -
按
1
→分区号 -
反复
Enter
按下以接受所有默认值 -
按
w
→写入更改并退出
3 格式化分区
分区后,它就变成/dev/vdb1
。将其格式化为 ext4:
sudo mkfs.ext4 /dev/vdb1
4 安装磁盘
创建挂载点并挂载它:
sudo mkdir -p /mnt/newdisk
sudo mount /dev/vdb1 /mnt/newdisk
检查一下:
df -h
可以看到/mnt/newdisk
有~500G可用✅
(openpi相关)
17:34:33.027 [I] Downloading s3://openpi-assets/checkpoints/pi0_fast_base/params to /root/.cache/openpi/openpi-assets/checkpoints/pi0_fast_base/params (49908:download.py:93)
89%|██████████████████████████████████████████████████████████████████████████████████▉ | 9.02G/10.1G [03:32<00:25, 45.6MiB/s]
完成以上步骤后
1 找到检查点路径
根据配置,检查点保存在:./checkpoints
也就是 /root/openpi/checkpoints (服务器路径)
(为了防止代码跑一半卡在这,在代码执行之前先创建一个checkpoints文件)
(或者直接给openpi创建符号链接。)
2 移动文件夹并创建符号链接
sudo mv /root/openpi/checkpoints /mnt/newdisk/checkpoints
ln -s /mnt/newdisk/checkpoints /root/openpi/checkpoints
现在,任何写入/root/openpi/checkpoints的内容,
实际上都将保存在/mnt/newdisk/checkpoints中
,无需修改代码。
3 验证是否有效
ls -l /root/openpi/checkpoints
4 将缓存移动到已挂载的磁盘
mv /root/.cache /mnt/newdisk/cache
5 创建符号链接
ln -s /mnt/newdisk/cache /root/.cache
6 验证
ls -l /root/.cache