setup OracleLinux 8.7 for wsl on windows11 - end0tknr's kipple - web写経開発
先程の上記entryの修正版です。
先程のentryではsystemdを有効化する為、 genie ( https://github.com/arkane-systems/genie )をinstallしましたが、 以下のurlによれば、wsl version 2では systemdに対応しているそうです。
そこで、wsl1→2化した上で、Oracle Linux 9.1をセットアップしています。
目次
- uninstall Oracle Linux 8.7
- WSL 1→2化
- install Oracle Linux 9.1
- systemd & sshd の有効化
- IPアドレスの固定
- IPアドレス固定の自動化
- install samba
- OracleLinuxの停止
uninstall Oracle Linux 8.7
先程のentryで入れた Oracle Linux 8.7 をアンインストール
CMD> wsl --unregister OracleLinux_8_7
WSL 1→2化
ブラウザで https://aka.ms/wslstorepage へ、アクセスすると 以下のようにMicrosoft Storeが起動しますので、そこでインストール
CMD> wsl --version WSL バージョン: 2.0.9.0 カーネル バージョン: 5.15.133.1-1 WSLg バージョン: 1.0.59 MSRDC バージョン: 1.2.4677 Direct3D バージョン: 1.611.1-81528511 DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp Windows バージョン: 10.0.22621.2861
※ WSL ver.1では「--version」に対応しておらず、実行できません
install Oracle Linux 9.1
まず、install可能なdistributionを確認
CMD> wsl --list --online インストールできる有効なディストリビューションの一覧を次に示します。 'wsl.exe --install <Distro>' を使用してインストールします。 NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling Ubuntu-18.04 Ubuntu 18.04 LTS Ubuntu-20.04 Ubuntu 20.04 LTS Ubuntu-22.04 Ubuntu 22.04 LTS OracleLinux_7_9 Oracle Linux 7.9 OracleLinux_8_7 Oracle Linux 8.7 OracleLinux_9_1 Oracle Linux 9.1 openSUSE-Leap-15.5 openSUSE Leap 15.5 SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4 SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5 openSUSE-Tumbleweed openSUSE Tumbleweed
Oracle Linux 9.1 のインストールと、ユーザ追加
CMD> wsl --install OracleLinux_9_1 Installing, this may take a few minutes... Please create a default UNIX user account. The username does not need to match your Windows username. For more information visit: https://aka.ms/wslusers Enter new UNIX username: end0tknr Changing password for user end0tknr. New password: Retype new password: passwd: all authentication tokens updated successfully. Installation successful!
systemd & sshd の有効化
/etc/wsl.conf を以下の内容で作成します。
※ wsl.conf の仕様は以下のurlが分かりやすいです
$ sudo vi /etc/wsl.conf [boot] systemd=true
Oracle Linuxを再起動すると、systemdの起動を確認できます
CMD> wsl --terminate OracleLinux_9_1 CMD> wsl -d OracleLinux_9_1 $ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 07:16 ? 00:00:00 /sbin/init root 2 1 0 07:16 ? 00:00:00 /init <略> root 30 1 0 07:18 ? 00:00:00 /usr/lib/systemd/systemd-journald <略>
最後にsystemctlでsshdを有効化します
$ sudo systemctl enable sshd $ sudo systemctl start sshd
IPアドレスの固定
wsl上のoracle linuxはdefaultでは起動する度にipアドレスが変更され、 sshやsmbでの接続が手間ですので、固定します。
まず、oracle linux側で割当てられているipを確認
$ ip a <略> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:15:5d:f4:52:da brd ff:ff:ff:ff:ff:ff inet 172.18.129.236/20 brd 172.18.143.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::215:5dff:fef4:52da/64 scope link valid_lft forever preferred_lft forever
次に、power shellを管理者モードで起動し、 vEthernet (WSL)の ifIndex を確認した上で、固定ipを設定。
参考url
PS> Get-NetAdapter -IncludeHidden Name InterfaceDescription ifIndex <略> ---- -------------------- ------- : ローカル エリア接続* 7 WAN Miniport (PPPOE) 22 <略> vEthernet (WSL (Hyper-... Hyper-V Virtual Ethernet Adapter 24 <略> vSwitch (WSL (Hyper-V ... Hyper-V Virtual Switch Extension Ada... 10 <略> <略>
PS> New-NetIPAddress -IPAddress 172.18.129.236 -PrefixLength 24 -InterfaceIndex 24 IPAddress : 172.18.129.236 InterfaceIndex : 24 InterfaceAlias : vEthernet (WSL (Hyper-V firewall)) AddressFamily : IPv4 Type : Unicast PrefixLength : 24 PrefixOrigin : Manual SuffixOrigin : Manual AddressState : Tentative ValidLifetime : PreferredLifetime : SkipAsSource : False PolicyStore : ActiveStore
IPアドレス固定の自動化
先程、固定したipはpcの停止時に無効化されますので、 ps1ファイルとタスクスケジューラでip固定の自動化を行います
CMD> vi c:/Users/end0t/local/AddIPAddress.ps1 New-NetIPAddress -IPAddress 172.18.129.236 -PrefixLength 24 -InterfaceIndex 24
プログラムスクリプト | powershell.exe |
引数の追加 | -ExecutionPolicy Bypass c:\Users\end0t\local\AddIPAddress.ps1 |
開始 | 空欄 |
install samba
$ sudo yum install samba $ sudo systemctl enable smb $ sudo systemctl start smb $ sudo pdbedit -a end0tknr new password: retype new password: Unix username: end0tknr NT username: Account Flags: [U ] User SID: S-1-5-21-3605739558-1094150744-591740496-1000 Primary Group SID: S-1-5-21-3605739558-1094150744-591740496-513 Full Name: Home Directory: \\A64-WSL\end0tknr HomeDir Drive: Logon Script: Profile Path: \\A64-WSL\end0tknr\profile Domain: A64-WSL <略>
OracleLinuxの停止
CMD> wsl --terminate OracleLinux_8_7 CMD> wsl --list --verbose NAME STATE VERSION * OracleLinux_8_7 Stopped 2