OpenWrt根文件系统迁移指南
根据你的 grub.cfg 配置,当前系统是通过 PARTUUID 来识别根文件系统的。如果你想将 /dev/sda3 设为新的 /dev/root,需要做以下调整:
步骤 1:确认 /dev/sda3 的 PARTUUID
运行以下命令查看 /dev/sda3 的 PARTUUID:
1 | blkid /dev/sda3 |
输出示例:
1 | /dev/sda3: UUID="1234abcd-5678-90ef..." PARTUUID="a21fa13b-34b6-35b4-69bb-92e6f5a90e03" TYPE="ext4" |
(记下 PARTUUID= 后面的值)
步骤 2:修改 GRUB 启动参数
编辑 /boot/grub/grub.cfg,将 root=PARTUUID=... 替换为 /dev/sda3 的 PARTUUID:
1 | vi /boot/grub/grub.cfg |
修改后的内容:
1 | menuentry "OpenWrt" { |
(替换 新的PARTUUID 为 /dev/sda3 的实际 PARTUUID)
步骤 3:确保 /dev/sda3 是有效的根文件系统
- 格式化
/dev/sda3(如果尚未格式化):1
mkfs.ext4 /dev/sda3
- 挂载并复制当前根文件系统:
1
2
3mkdir /mnt/newroot
mount /dev/sda3 /mnt/newroot
rsync -aAXv / /mnt/newroot/ --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/boot/*"} - 修改
/etc/fstab(如果/dev/sda3需要挂载):添加:1
vi /mnt/newroot/etc/fstab
1
/dev/sda3 / ext4 rw,noatime 0 1
步骤 4:重启并验证
1 | reboot |
启动后检查:
1 | df -h |
如果 /dev/root 显示为 /dev/sda3,说明修改成功。
备选方案:直接使用 /dev/sda3 代替 PARTUUID
如果你不想用 PARTUUID,可以直接修改 grub.cfg 使用 /dev/sda3:
1 | menuentry "OpenWrt" { |
(但 PARTUUID 更稳定,推荐优先使用)
可能遇到的问题
- 启动失败:
- 检查
blkid /dev/sda3确保PARTUUID正确。 - 进入 GRUB 救援模式,手动修改启动参数测试。
- 检查
- 文件系统未正确复制:
- 重新执行
rsync确保所有文件复制完整。
- 重新执行
如果仍有问题,请提供错误信息,我可以进一步协助!
时间: 2025-04-23T22:34:22
👤 用户
root@OpenWrt:# lsblk# df -h
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 8G 0 disk
├─sda1 8:1 0 16M 0 part /boot
│ /boot
├─sda2 8:2 0 104M 0 part /
├─sda3 8:3 0 7.9G 0 part
└─sda128 259:0 0 239K 0 part
sr0 11:0 1 1024M 0 rom
root@OpenWrt:
Filesystem Size Used Available Use% Mounted on
/dev/root 98.3M 91.4M 4.8M 95% /
tmpfs 490.2M 4.4M 485.8M 1% /tmp
/dev/sda1 16.0M 6.1M 9.8M 38% /boot
/dev/sda1 16.0M 6.1M 9.8M 38% /boot
tmpfs 512.0K 0 512.0K 0% /dev
root@OpenWrt:~#
怎么把sda3 设置为 /dev/root
时间: 2025-04-23T22:26:47
🤖 DeepSeek (deepseek-chat)
要将 /dev/sda3 设置为新的根文件系统 (/dev/root),你需要按照以下步骤操作:
1. 格式化 /dev/sda3 为 ext4 文件系统
1 | mkfs.ext4 /dev/sda3 |
(如果你希望使用其他文件系统,比如 f2fs 或 btrfs,可以替换 ext4)
2. 临时挂载 /dev/sda3 并复制现有根文件系统
1 | mkdir /mnt/newroot |
然后,复制当前 / 的内容到新分区:
1 | rsync -aAXv / /mnt/newroot/ --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/boot/*"} |
(rsync 可以确保所有文件权限和符号链接正确复制)
3. 修改 /etc/fstab 以使用 /dev/sda3 作为根文件系统
编辑 /etc/fstab:
1 | vi /mnt/newroot/etc/fstab |
找到 /dev/root 的行(或 /dev/sda2),替换为:
1 | /dev/sda3 / ext4 rw,noatime 0 1 |
(如果 /dev/sda3 使用其他文件系统,请相应调整)
4. 修改 OpenWrt 的启动参数
编辑 /boot/grub/grub.cfg 或 /etc/bootmenu.d/ 中的相关配置(取决于你的启动方式),确保内核使用 /dev/sda3 作为根设备。
例如,在 grub.cfg 中修改 root= 参数:
1 | linux /boot/vmlinuz root=/dev/sda3 rootfstype=ext4 |
(如果使用 extlinux 或 uboot,请相应调整)
5. 重启并验证
1 | reboot |
启动后,运行:
1 | df -h |
检查 /dev/root 是否已挂载到 /dev/sda3。
6. (可选)回收 /dev/sda2 的空间
如果 /dev/sda2 不再需要,可以删除它并扩展 /dev/sda3:
1 | fdisk /dev/sda |
(删除 /dev/sda2,调整 /dev/sda3 的分区大小,然后 w 保存)
注意事项:
- 备份重要数据,避免操作失误导致数据丢失。
- OpenWrt 默认使用
squashfs作为只读根文件系统,如果你想要可写根文件系统,可能需要调整。 - 如果使用
overlayfs,确保/dev/sda3正确挂载到/overlay。
如果你遇到问题,可以提供具体的错误信息,我可以进一步协助!
时间: 2025-04-23T22:26:47
👤 用户
search -l kernel -s root
menuentry “OpenWrt” {
linux /boot/vmlinuz root=PARTUUID=a21fa13b-34b6-35b4-69bb-92e6f5a90e02 rootwait console=tty0 console=ttyS0,115200n8 noinitrd
}
menuentry “OpenWrt (failsafe)” {
linux /boot/vmlinuz failsafe=true root=PARTUUID=a21fa13b-34b6-35b4-69bb-92e6f5a90e02 rootwait console=tty0 console=ttyS0,115200n8 noinitrd
时间: 2025-04-23T22:34:22
🤖 DeepSeek (deepseek-chat)
根据你的 grub.cfg 配置,当前系统是通过 PARTUUID 来识别根文件系统的。如果你想将 /dev/sda3 设为新的 /dev/root,需要做以下调整:
步骤 1:确认 /dev/sda3 的 PARTUUID
运行以下命令查看 /dev/sda3 的 PARTUUID:
1 | blkid /dev/sda3 |
输出示例:
1 | /dev/sda3: UUID="1234abcd-5678-90ef..." PARTUUID="a21fa13b-34b6-35b4-69bb-92e6f5a90e03" TYPE="ext4" |
(记下 PARTUUID= 后面的值)
步骤 2:修改 GRUB 启动参数
编辑 /boot/grub/grub.cfg,将 root=PARTUUID=... 替换为 /dev/sda3 的 PARTUUID:
1 | vi /boot/grub/grub.cfg |
修改后的内容:
1 | menuentry "OpenWrt" { |
(替换 新的PARTUUID 为 /dev/sda3 的实际 PARTUUID)
步骤 3:确保 /dev/sda3 是有效的根文件系统
- 格式化
/dev/sda3(如果尚未格式化):1
mkfs.ext4 /dev/sda3
- 挂载并复制当前根文件系统:
1
2
3mkdir /mnt/newroot
mount /dev/sda3 /mnt/newroot
rsync -aAXv / /mnt/newroot/ --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/boot/*"} - 修改
/etc/fstab(如果/dev/sda3需要挂载):添加:1
vi /mnt/newroot/etc/fstab
1
/dev/sda3 / ext4 rw,noatime 0 1
步骤 4:重启并验证
1 | reboot |
启动后检查:
1 | df -h |
如果 /dev/root 显示为 /dev/sda3,说明修改成功。
备选方案:直接使用 /dev/sda3 代替 PARTUUID
如果你不想用 PARTUUID,可以直接修改 grub.cfg 使用 /dev/sda3:
1 | menuentry "OpenWrt" { |
(但 PARTUUID 更稳定,推荐优先使用)
可能遇到的问题
- 启动失败:
- 检查
blkid /dev/sda3确保PARTUUID正确。 - 进入 GRUB 救援模式,手动修改启动参数测试。
- 检查
- 文件系统未正确复制:
- 重新执行
rsync确保所有文件复制完整。
- 重新执行
如果仍有问题,请提供错误信息,我可以进一步协助!
时间: 2025-04-23T22:34:22
对话统计
- 消息总数: 4 条
- 处理状态: 成功转换