curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash –
apt list nodejs
apt install -y nodejs
node -v
npm -v
-
Ubuntu 24通过APT安装Nodejs及Openclaw
-
Docker-compose 在线升级
一、更新 镜像(最常见)
当
docker-compose.yml没变,但镜像有新版本:docker-compose pull docker-compose up -d👉 等价于:
- 拉取最新镜像
- 用新镜像重建并启动容器(不中断未变的服务)
二、更新 服务配置(yml 改了)
比如改了端口、环境变量、volume:
docker-compose up -d如果你想强制重建(推荐在不确定时用):
docker-compose up -d --build
三、只更新某一个服务
比如只更新
web:docker-compose pull web docker-compose up -d web
四、更新后清理旧容器 / 旧镜像(可选)
防止磁盘越用越满 🧹
docker-compose down docker-compose up -d或只清理不用的镜像:
docker image prune -
AMD AI-MAX395 安装Rocm7.1.1
Rocm7.2已经出了但是不兼容AI-MAX 395,下面是安装Rocm7.1.1和对应的rocm/pytorch
apt update
apt install vim wget gpg curl git -y
apt upgrade -y
wget https://repo.radeon.com/amdgpu-install/7.1.1/ubuntu/noble/amdgpu-install_7.1.1.70101-1_all.deb
apt install ./amdgpu-install_7.1.1.70101-1_all.deb
apt update
apt install python3-setuptools python3-wheel libjpeg-dev python3-dev python3-pip
groupadd render
usermod -a -G render,video ubuntu
apt install rocmapt update
apt install “linux-headers-$(uname -r)” “linux-modules-extra-$(uname -r)”
apt install amdgpu-dkmsdocker pull rocm/pytorch:rocm7.1.1_ubuntu24.04_py3.12_pytorch_release_2.9.1
-
Ubuntu 24安装官方源Docker
https://docs.docker.com/engine/install/ubuntu
Run the following command to uninstall all conflicting packages:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)Add Docker’s official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.ascAdd the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo “${UBUNTU_CODENAME:-$VERSION_CODENAME}”)
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOFsudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
-
Ubuntu 24磁盘扩容
df -h # 找出满的分区
ubuntu默认使用lv卷管理磁盘你的磁盘可能有1TB,但是你可以看到比如
/dev/mapper/ubuntu–vg-ubuntu–lv: 100 GiB,一、你现在的现象说明什么?
你看到类似下面的信息:
/dev/mapper/ubuntu--vg-ubuntu--lv 100G但你明确知道磁盘是 1TB。
👉 这说明:
磁盘 = 1TB
物理卷(PV) / 卷组(VG) / 逻辑卷(LV) 只分配了 100G 给根分区Linux 并不会自动把整块磁盘都给
/,尤其在 Ubuntu + LVM 场景下,这是正常现象。
二、LVM 结构快速理解(很重要)
LVM 的结构是:
磁盘(1TB) └─ 物理卷 PV └─ 卷组 VG(ubuntu-vg) ├─ 逻辑卷 LV(ubuntu-lv) ← 你现在只有 100G └─ 剩余空间(还没用!)👉 重点:剩下的 900G 还在 VG 里,没分给 LV
三、你先确认一下现状(一步步来)
1️⃣ 查看磁盘真实大小
lsblk你应该能看到类似:
sda 1T └─sda3 1T └─ubuntu--vg-ubuntu--lv 100G /
2️⃣ 查看卷组是否还有空闲空间
vgdisplay关注这两行:
VG Size <1.00 TiB Free PE / Size 900.00 GiB👉 如果
Free很大,说明空间还没用
3️⃣ 查看逻辑卷大小
lvdisplay你会看到:
LV Size 100.00 GiB
四、如果你想把剩余空间扩展到
/(最常见需求)⚠️ 下面操作是安全的,但建议生产环境先确认或快照
✅ 一条命令直接扩到最大(推荐)
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv或者:
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
关键一步:扩展文件系统
如果是 ext4(Ubuntu 默认):
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv如果是 xfs:
xfs_growfs /
4️⃣ 验证是否成功
df -h你应该能看到:
/dev/mapper/ubuntu--vg-ubuntu--lv ~1.0T -
Linux 时区time zone
一、查看当前时区
timedatectl二、修改时区(立即生效)
例如:改为中国时间
sudo timedatectl set-timezone Asia/Shanghai 无需重启,立刻生效 ✅ 修改后使用 timedatectl 命令确认三、没有timedatectl命令时
直接改
/etc/localtimesudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime -
Docker 技巧
维持一个长久运行的容器以供调试,加sleep infinity
容器停止后,自动删除这个容器 –rm例子
docker run -dit – -device=/dev/kfd – -device=/dev/dri – -group-add video – -runtime=runc – -name ubuntu-alwayson qinzhen/comfyui-rocm:0.9.1 sleep infinity
之后使用 docker exec -it ubuntu-alwayson bash 进入,在宿主机使用docker restart ubuntu-alwayson 重启AMD Rocm&Pytorch easy install
在容器内做了修改之后可以使用一下命令提交变更
docker commit “运行中的容器ID” “镜像名,如:qinzhen/xxxx”
做一个正式镜像
目录里建立Dockerfile文件,里面写上配置
docker build -t “镜像名” . (不要忘记有.)
docker push “镜像名”
清除Docker build的缓存
docker builder prune / docker builder prune -f / docker builder prune -af改名
# Tag the existing image with a new namedocker tag old_image_name:latest new_image_name:latest
# Optionally, remove the old tag
docker rmi old_image_name:latest
Docker image 删除之后空间没有释放
这是 Docker 非常经典、但也很容易误解的问题。先给你一句结论:
删除 docker image ≠ 立刻释放磁盘空间
真正占空间的,往往是 容器、匿名 volume、build cache、overlay 层。下面一步一步帮你把空间真正清干净,并告诉你每一步在清什么。
一、先确认:空间到底被谁占着(必须做)
先跑这条:
docker system df你会看到类似:
TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 12 0 45GB 45GB (100%) Containers 8 0 10GB 10GB (100%) Local Volumes 15 2 80GB 60GB (75%) Build Cache 23 0 35GB 35GB👉 关键看 RECLAIMABLE,不是 SIZE
👉 这一步是“指路牌”,决定你下一步该删什么 -
Alma Linux Docker 特例
dnf remove -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
dnf install -y moby-engine moby-cli moby-compose
-
在 PowerShell 中查询 Windows 系统上次重启时间
✅ 查看系统上次启动时间(最常用)
Get-CimInstance Win32_OperatingSystem | Select-Object LastBootUpTime返回类似:
LastBootUpTime -------------- 2025-01-12T03:41:22.123456+08:00
✅ 查看系统运行时间 / 上次启动点(Uptime 信息)
(Get-Date) - (gcim Win32_OperatingSystem).LastBootUpTime返回类似:
Days : 2 Hours : 5 Minutes : 18 Seconds : 47
✅ 使用事件日志查询上次重启事件
系统重启事件对应 Event ID 6006(正常关闭) 或 6008(异常关闭)。
Get-EventLog -LogName System -InstanceId 6006 -Newest 1 或 WMILog: Get-WinEvent -FilterHashtable @{LogName='System'; Id=6006} -MaxEvents 1 -
JsonNano NVME SSD直接使用SD Card Image安装
相关网站1,https://www.jetson-ai-lab.com/
相关网站2,https://developer.nvidia.com/embedded/jetpack/downloads
Json Nano需要使用6.2.1 https://developer.nvidia.com/embedded/jetpack-sdk-621
Roadmap https://developer.nvidia.com/embedded/develop/roadmap终于可以摆脱使用愚蠢的 NVIDIA SDK Manager将系统安装到SSD了
推荐使用 Etcher 作为Image的写卡工具 https://etcher.balena.io/
将SD Card Image写入你的Nvme SSD
打开任意可以编辑Linux分区文件的工具,比如Disk Genius
下载/boot/extlinux/extlinux.conf 文件并使用合适工具编辑
找到以下位置
APPEND ${cbootargs} root=/dev/nvme1n1p1 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 firmware_class.path=/etc/firmware fbcon=map:0 video=efifb:off console=tty0
root=/dev/nvme1n1p1 ,将dev后面的设备从mmcblk0p1改为对应的nvme, 2280 是nvme0n1p1, 2230是nvme1n1p1 保存,上传并覆盖源文件。安装好ssd并开机。