如何将VMware中的Ubuntu系统迁移至U盘并实现即插即用
如何将VMware中的Ubuntu系统迁移至U盘并实现即插即用
嘿,完全懂你不想舍弃原有Ubuntu系统数据的心情!我之前刚好折腾过类似的迁移操作,给你整理了一套亲测可行的步骤,一步步来就能搞定:
一、前期准备工作
- 准备一个容量足够大的U盘:至少要比你VMware里Ubuntu系统实际占用的磁盘空间大出20%以上(留些冗余空间更稳妥),优先选USB3.0及以上的U盘,读写速度更快。
- 给VMware里的Ubuntu做个快照:操作前先打个快照,万一出问题还能一键恢复原系统,稳得很。
- 更新原系统:启动VMware里的Ubuntu,先执行
sudo apt update && sudo apt upgrade -y把系统和软件更到最新,避免迁移后出现兼容性问题。
二、在VMware中挂载并分区U盘
- 把U盘插到物理机上,然后打开VMware的虚拟机设置,找到「可移动设备」里的U盘,选择「连接」,让Ubuntu虚拟机识别到U盘。
- 安装分区工具:执行
sudo apt install gparted安装GParted图形分区工具,用它来给U盘分区更直观。 - 分区操作:
- 打开GParted,在顶部下拉菜单选择你的U盘设备(别选错成原系统盘!可以通过容量判断)。
- 删除U盘原有所有分区,然后创建新的分区表:如果原Ubuntu是UEFI启动,选GPT分区表;如果是BIOS启动,选MSDOS分区表。
- 创建EFI分区(仅UEFI启动需要):新建一个200MB左右的分区,格式选FAT32,右键标记为「boot, esp」。
- 创建根分区:新建一个足够大的分区,格式选EXT4,这就是用来装系统的分区。
- (可选)创建Swap分区:如果需要虚拟内存,可以新建一个和物理内存大小相当的分区,格式选linux-swap。
三、克隆系统文件到U盘
- 挂载U盘分区:
- 假设U盘的根分区是
/dev/sdb2,EFI分区是/dev/sdb1(可以用lsblk命令确认设备名),执行以下命令挂载:sudo mkdir -p /mnt/usb sudo mount /dev/sdb2 /mnt/usb sudo mkdir -p /mnt/usb/boot/efi sudo mount /dev/sdb1 /mnt/usb/boot/efi
- 假设U盘的根分区是
- 用rsync复制系统文件:这个命令会完整复制系统的所有文件,同时保留权限、属性等关键信息,比dd镜像更省空间:
耐心等复制完成,速度取决于U盘读写速度和系统大小。sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/usb
四、修复U盘系统的启动引导(关键步骤!)
这一步是让U盘能独立启动的核心,别偷懒:
- 进入chroot环境,模拟在U盘系统里操作:
sudo mount --bind /dev /mnt/usb/dev sudo mount --bind /proc /mnt/usb/proc sudo mount --bind /sys /mnt/usb/sys sudo chroot /mnt/usb - 更新分区UUID(避免挂载失败):
- 执行
blkid查看U盘各分区的UUID,记下根分区和EFI分区(如果有)的UUID。 - 编辑fstab文件:
sudo nano /etc/fstab,把里面原来的分区UUID替换成刚才记下的U盘分区UUID,保存退出(Ctrl+O,回车,Ctrl+X)。
- 执行
- 安装GRUB引导:
- 如果是UEFI启动:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Ubuntu-USB - 如果是BIOS启动:
grub-install /dev/sdb # 注意是整个U盘设备,不是分区!
- 如果是UEFI启动:
- 更新GRUB配置:
update-grub - 退出chroot并卸载挂载:
exit sudo umount /mnt/usb/boot/efi sudo umount /mnt/usb/dev sudo umount /mnt/usb/proc sudo umount /mnt/usb/sys sudo umount /mnt/usb
五、测试即插即用效果
把U盘从VMware虚拟机里断开,插到你想使用的物理机上,重启物理机,在开机时按对应的快捷键(比如F12、F2、Del等,不同品牌电脑不一样)进入启动项选择菜单,选中你的U盘启动。
第一次启动可能会因为硬件变化,Ubuntu自动安装适配的驱动,可能会重启一次,之后就能正常使用了!而且这个U盘系统和你VMware里的原系统完全独立,两边的数据互不影响~
备注:内容来源于stack exchange,提问作者sj T




