MENU

wsl2安装Rocky8.5

March 19, 2022 • linux相关,Windows

0. 前提

  • win10 开启 WSL2
  • wsl2中已经安装好的 ubuntu20.04 子系统

1. 制作 rootfs.tar 系统文件包

1.1 下载官方提供的 qcow2 系统包

Rocky8.5 官方下载地址:

https://download.rockylinux.org/pub/rocky/8/images/Rocky-8-GenericCloud-8.5-20211114.2.x86_64.qcow2
https://download.rockylinux.org/pub/rocky/8/images/

其他发行版下载地址:
CentOS 7.9
Fedora 35
Debian 11
Ubuntu 20.04

1.2 制作 rootfs.tar.gz

制作过程,全程在 wsl2-ubuntu20.04 系统中进行,依赖工具包:kpartx、qemu-img、losetup、fdisk、mount、umount

  • 安装 qemu-img

    apt install qemu-utils
  • 转换 qcow2 文件到 raw 文件

    qemu-img convert -f qcow2 -O raw Rocky-8-GenericCloud-8.5-20211114.2.x86_64.qcow2 Rocky8.raw
  • 使用 losetup 将 raw 文件虚拟成块设备

    losetup /dev/loop1 Rocky8.raw
  • 使用 kpartx 挂载虚拟文件系统

    kpartx -a /dev/loop1
  • 使用 fdisk 查看挂载的分区情况

    fdisk -l /dev/loop1

    输出:

    Disk /dev/loop1: 10 GiB, 10737418240 bytes, 20971520 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x2cc9c27e
    
    Device       Boot Start      End  Sectors  Size Id Type
    /dev/loop1p1 *     2048 16386047 16384000  7.8G 83 Linux

    此处的 /dev/loop1p1 就是等下要 mount 的块设备具体的名称。

  • 挂载块设备到本机路径

    mount /dev/mapper/loop1p1 /mnt
  • 进入挂载点 /mnt,查看文件

    cd /mnt
    ls -la

    输出:

    total 16
    dr-xr-xr-x. 17 root root  224 Nov 15 03:17 .
    dr-xr-xr-x. 18 root root  256 Nov 17 09:09 ..
    lrwxrwxrwx.  1 root root    7 Oct 11 08:48 bin -> usr/bin
    dr-xr-xr-x.  6 root root 4096 Nov 15 03:24 boot
    drwxr-xr-x.  2 root root    6 Nov 15 02:50 dev
    drwxr-xr-x. 94 root root 8192 Nov 15 03:24 etc
    drwxr-xr-x.  2 root root    6 Oct 11 08:48 home
    lrwxrwxrwx.  1 root root    7 Oct 11 08:48 lib -> usr/lib
    lrwxrwxrwx.  1 root root    9 Oct 11 08:48 lib64 -> usr/lib64
    drwxr-xr-x.  2 root root    6 Oct 11 08:48 media
    drwxr-xr-x.  2 root root    6 Oct 11 08:48 mnt
    drwxr-xr-x.  2 root root    6 Oct 11 08:48 opt
    drwxr-xr-x.  2 root root    6 Nov 15 02:50 proc
    dr-xr-x---.  2 root root  114 Nov 15 03:47 root
    drwxr-xr-x.  2 root root    6 Nov 15 02:50 run
    lrwxrwxrwx.  1 root root    8 Oct 11 08:48 sbin -> usr/sbin
    drwxr-xr-x.  2 root root    6 Oct 11 08:48 srv
    drwxr-xr-x.  2 root root    6 Nov 15 02:50 sys
    drwxrwxrwt.  2 root root   84 Nov 15 03:47 tmp
    drwxr-xr-x. 13 root root  158 Nov 15 03:01 usr
    drwxr-xr-x. 20 root root  262 Nov 15 03:00 var
  • 打包压缩 /mnt 整个目录为 rootfs.tar.gz,保存到 /root

    tar zcf /root/rootfs.tar.gz *
  • 查看打包后的文件,确认文件存在,本次压缩包大小在 514MB

    ll -h /root/rootfs.tar.gz

    rootfs.tar.gz 将作为后面一键注册安装加载的系统包。

1.3 清理工作

  • 卸载挂载点

    cd ~
    umount /mnt
  • 使用 kpartx 卸载虚拟文件系统

    kpartx -d /dev/loop1
  • 使用 losetup 卸载虚拟块设备

    losetup -d /dev/loop1

2. 搭配 wsldl 使用

wsldl,Advanced WSL launcher / installer,是一个用 Go 编写的多功能和高级 WSL/WSL2 启动器和安装程序。它可用于安装任何 rootfs 软件包或充当现有已安装发行版的启动器。
项目地址:

https://github.com/yuk7/wsldl
下载最新版 Release 的 icons.zip 文件
解压 icons.zip 后,本次只用得到 Rocky.exe 执行程序,将 exe 和上面制作好的 rootfs.tar.gz 文件一并放到 D:\wsl\rocky\ 目录中(路径自定义),双击 exe 完成安装。

3. Rocky8 系统常用设置

  • 3.1 设置静态IP

    vi /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE="eth0"
    BOOTPROTO="dhcp"
    ONBOOT="yes"
    TYPE="Ethernet"
    USERCTL="yes"
    PEERDNS="yes"
    IPV6INIT="no"
    PERSISTENT_DHCLIENT="1"
    IPADDR0=192.168.1.248
    PREFIXO0=24
    GATEWAY0=192.168.1.1
    DNS1=223.6.6.6
    DNS2=119.29.29.29
  • 3.2 更换阿里云镜像源

    sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' -i.bak /etc/yum.repos.d/Rocky-*.repo
  • 3.3 安装 fish

    dnf config-manager --add-repo https://download.opensuse.org/repositories/shells:/fish:/release:/3/CentOS_8/shells:fish:release:3.repo
    
    dnf install fish
  • 3.4 安装 screen

    dnf install epel-release
    dnf install screen

99. 资料

https://teddysun.net/646.html
https://teddysun.net/626.html
https://adatiya.com/post/4104.html
Last Modified: March 31, 2022