硬盘
算力舱默认携带的硬盘是 1T 版本的固态硬盘。但算力舱具有两个 pcie4 的接口,您可以按照您的需求来更换硬盘。
换硬盘
- 将换下来的硬盘的数据拷贝到新硬盘上(原来的硬盘上有一些模型的数据和算力舱的客户端)
- 换上新的硬盘即可
警告操作
换硬盘时需要确保 /etc/fstab 中的挂载路径是对应上的,要不然系统进不去。
下面这个是一个示例,里面将固态盘挂载到 /ssd 这个目录下。
UUID=942a4d75-e509-4fa2-8d3a-23cb6925b68c /ssd ext4 defaults 0 2
/ssd/home /home none bind 0 0迁移系统到固态
在算力舱现在系统中,系统是在 64G 的 emmc 存储上的,而 docker 和 home 是在 SSD 存储上的,您可以按照下面的命令来将系统迁移到 SSD 上。
- /ssd 目录
这个目录是现在 1T 硬盘的挂载路径,您可以在里面看到 docker, home, lzc-ai-agent 等目录。
- 拷贝当前的系统到 nvme 硬盘中, 假设您的 nvme 为 nvme0n1p1
sudo mount /dev/nvme0n1p1 /mnt
sudo rsync -axHAWX --numeric-ids --info=progress2 --exclude={"/dev/","/proc/","/sys/","/tmp/","/run/","/mnt/","/media/*","/lost+found", "/ssd/", "/home/"} / /mnt
sudo mkdir -p /mnt/ssd # 迁移之前的 /ssd 到新的目录
sudo systemctl stop lzc-ai-agent
sudo systemctl stop docker
systemctl stop nvzramconfig
systemctl disable nvzramconfig
mkdir -p /mnt/ssd
mv /mnt/docker /mnt/ssd/
mv /mnt/lzc-ai-agent /mnt/ssd/lzc-ai-agent- 更改
/etc/fstab
需要将 /ssd/ 相关的行注释掉,更新后的 /etc/fstab 看起来类似下面的文本
# /etc/fstab: static file system information.
#
# These are the filesystems that are always mounted on boot, you can
# override any of these by copying the appropriate line from this file into
# /etc/fstab and tweaking it as you see fit. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/root / ext4 defaults 0 1
UUID=A9EE-ABCF /boot/efi vfat defaults 0 1- 写入
/etc/systemd/system/setssdroot.service
[Unit]
Description=Change rootfs to SSD in M.2 key M slot (nvme0n1p1)
DefaultDependencies=no
Conflicts=shutdown.target
After=dev-nvme0n1p1.device
Requires=dev-nvme0n1p1.device
Before=shutdown.target
ConditionPathExists=/dev/nvme0n1p1
ConditionPathExists=/etc/setssdroot.conf
ConditionVirtualization=!container
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/setssdroot.sh
[Install]
WantedBy=default.target- 写入
/sbin/setssdroot.sh
#!/bin/sh
# Runs at startup, switches rootfs to the SSD on nvme0 (M.2 Key M slot)
NVME_DRIVE="/dev/nvme0n1p1"
CHROOT_PATH="/nvmeroot"
INITBIN=/lib/systemd/systemd
EXT4_OPT="-o defaults -o errors=remount-ro -o discard"
modprobe ext4
mkdir -p ${CHROOT_PATH}
mount -t ext4 ${EXT4_OPT} ${NVME_DRIVE} ${CHROOT_PATH}
cd ${CHROOT_PATH}
/bin/systemctl --no-block switch-root ${CHROOT_PATH}- 执行命令
sudo chmod 777 /sbin/setssdroot.sh
systemctl daemon-reload
sudo systemctl enable setssdroot.service
sudo cp /etc/systemd/system/setssdroot.service /mnt/etc/systemd/system/setssdroot.service
sudo cp /sbin/setssdroot.sh /mnt/sbin/setssdroot.sh
sudo cp /etc/fstab /mnt/etc/fstab
sudo touch /etc/setssdroot.conf/etc/setssdroot.conf 为一个标识文件,这个文件存在才会使用 nvme 上的 rootfs 启动。所以如果您需要切换会 emmc 系统,您可以
- 将 nvme 硬盘拔掉
- 手动 mount emmc 硬盘,然后将里面的
/etc/setssdroot.conf文件删除重启即可
- 重启生效
配置 Swapfile
在您迁移系统后,重启系统,lsblk 可以看到当前系统已经在 nvme 上,配置 swapfile
fallocate -l 32G /swapfile
mkswap /swapfile创建一个 /etc/systemd/system/swapfile.swap 文件写入下面的内容
[Swap]
What=/swapfile
[Install]
WantedBy=swap.target执行下面的命令进行启动
systemctl daemon-reload
systemctl status swapfile.swap
systemctl enable swapfile.swap
systemctl start swapfile.swap修复 apt man 数据库错误
# 修复权限
sudo chown -R man:root /var/cache/man
sudo chmod -R 755 /var/cache/man
# 重建数据库
sudo mandb