一、场景概述

本文档适用于将虚拟机(VM)中安装的银河麒麟系统导入 Windows Subsystem for Linux(WSL)环境的场景,包含导入步骤、常见问题及解决方法,帮助用户解决导入过程中出现的配置兼容问题。

二、系统导入

1. 导出 VM虚拟机 中的银河麒麟根文件系统

在 VM 虚拟机的银河麒麟系统中,以管理员权限执行以下命令,将根文件系统导出为 tar 包,排除运行时目录以避免冲突:

sudo tar -cvpzf /mnt/kylin_export.tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/run --exclude=/mnt /

将生成的kylin_export.tar.gz复制到 Windows 本地路径(如C:\temp\)。

2. 准备 WSL 环境

在 Windows 的 PowerShell 中执行以下命令,启用 WSL 2 并安装必要组件:

# 安装WSL   
wsl --install   
# 设置默认WSL版本为2   
wsl --set-default-version 2   
# 更新WSL内核(若版本过旧)   
wsl --update

3. 导入系统到 WSL

在 PowerShell 中执行导入命令,指定发行版名称、安装路径和 tar 包路径:

wsl --import WSL名称 <WSL安装路径> <tar包路径> --version 2   
# 示例:
wsl --import KyLin C:\wsl\Kylin C:\temp\kylin_export.tar.gz --version 2

导入完成后,通过以下命令启动系统:

wsl -d KyLin

4.系统配置

1)磁盘挂载

VM 导入的银河麒麟系统中,/etc/fstab文件保留了原 VM 的磁盘配置(如/dev/sdc/dev/sdd或对应 UUID),而 WSL 2 使用虚拟磁盘文件(.vhdx),不识别传统/dev/sd*设备,导致挂载失败。

编辑/etc/fstab文件,注释或删除不兼容的配置:

sudo vim /etc/fstab  

找到引用/dev/sdc/dev/sdd或对应 UUID 的条目,在行首加#注释(示例如下):

# 原VM中的磁盘配置(WSL不兼容,需注释)  
# /dev/sdc  /mnt/data  ext4  defaults,discard,errors=remount-ro  0  2  
# UUID=xxxx-xxxx  /mnt/backup  ext4  defaults  0  2  

2)systemd命令切换

WSL 默认使用传统init系统(如sysvinit),而非systemd,导致依赖systemd的命令(如systemctl)无法运行。

在 WSL 终端中编辑配置文件:

sudo vim /etc/wsl.conf  

添加以下内容并保存:

[boot]  
systemd=true  

3)重启 WSL 使配置生效:

在 PowerShell 中执行:

wsl --shutdown && wsl  

5.删除默认系统环境

执行命令列出所有 WSL 发行版(包括导入的):

1)查找发行版本

wsl -l -v

2)删除默认系统环境

wsl --unregister Ubuntu

3)启动WSL

wsl