### 步骤1:手动给NVMe分区
“`bash
# 查看硬盘
blkid
# 进入fdisk分区工具
sudo fdisk /dev/nvme0n1
“`
按以下顺序输入命令:
– `g` → 新建GPT分区表(和SD卡一致)
– `n` → 新建boot分区(p1)
– 分区号:`1` → 回车
– 起始扇区:`2048` → 回车(4K对齐)
– 结束扇区:`+1G` → 回车(给boot分1G)
– `t` → 改分区类型
– 分区号:`1` → 回车
– 类型:`uefi` → 回车(EFI系统分区)
– `n` → 新建根分区(p2)
– 分区号:`2` → 回车
– 起始/结束扇区:直接回车(用全部剩余空间)
– `t` → 改分区类型
– 分区号:`2` → 回车
– 类型:`linux` → 回车
– `w` → 保存分区表,退出
### 步骤2:格式化分区
“`bash
# 格式化boot为vfat
sudo mkfs.vfat -F 32 /dev/nvme0n1p1 -n BOOT
# 格式化根分区为ext4
sudo mkfs.ext4 /dev/nvme0n1p2 -L ROOT
“`
### 步骤3:挂载分区+复制系统
“`bash
# 挂载NVMe根分区
sudo mount /dev/nvme0n1p2 /mnt
# 创建boot目录并挂载
sudo mkdir -p /mnt/boot
sudo mount /dev/nvme0n1p1 /mnt/boot
# 用rsync完整复制SD卡系统到NVMe(排除临时目录)
sudo rsync -aAXv / –exclude={“/dev/*”,”/proc/*”,”/sys/*”,”/tmp/*”,”/run/*”,”/mnt/*”,”/media/*”,”/lost+found”} /mnt
“`
### 步骤4:生成正确的fstab
“`bash
# 获取UUID
NVME_ROOT_UUID=$(blkid -s UUID -o value /dev/nvme0n1p2)
NVME_BOOT_UUID=$(blkid -s UUID -o value /dev/nvme0n1p1)
cat > /mnt/etc/fstab << EOF
UUID=$NVME_BOOT_UUID /boot vfat defaults 0 2
UUID=$NVME_ROOT_UUID / ext4 errors=remount-ro 0 1
EOF
if [ -f /mnt/boot/orangepiEnv.txt ]; then
if grep -q ‘^rootdev=’ /mnt/boot/orangepiEnv.txt; then
sudo sed -i “s|^rootdev=.*|rootdev=UUID=$NVME_ROOT_UUID|” /mnt/boot/orangepiEnv.txt
else
echo “rootdev=UUID=$NVME_ROOT_UUID” | sudo tee -a /mnt/boot/orangepiEnv.txt
fi
fi
if [ -f /mnt/boot/armbianEnv.txt ]; then
if grep -q ‘^rootdev=’ /mnt/boot/armbianEnv.txt; then
sudo sed -i “s|^rootdev=.*|rootdev=UUID=$NVME_ROOT_UUID|” /mnt/boot/armbianEnv.txt
else
echo “rootdev=UUID=$NVME_ROOT_UUID” | sudo tee -a /mnt/boot/armbianEnv.txt
fi
fi
if [ -f /mnt/boot/extlinux/extlinux.conf ]; then
sudo sed -i -E “s|root=UUID=[^ ]+|root=UUID=$NVME_ROOT_UUID|g” /mnt/boot/extlinux/extlinux.conf
fi
# 卸载分区
sudo umount /mnt/boot /mnt
“`
### 步骤5:重新写入SPI引导+配置启动模式
“`bash
sudo orangepi-config
“`
进入 `System → Install`
1. 选择 **7. Install/Update the bootloader on SPI Flash** → 回车,刷入U-Boot到SPI(不要断电!)
### 步骤6:拔卡开机测试
1. **关机**
2. **拔掉SD卡**(必须拔!否则从SD卡启动)
3. 开机 → 完美从SPI引导,直接进入NVMe系统!
# ✅ 验证成功的标准
执行完方案一/二后,执行:
“`bash
sudo blkid
sudo mount /dev/nvme0n1p2 /mnt
cat /mnt/etc/fstab
“`



暂无评论内容