📌
Rocky Linux@WSL1
目的
- windows10にlinux環境を構築し, スパコンセンター等外部の計算機にsshでアクセスする
- macのterminalと同じようにアプリをクリックするだけでterminalを起動できるようにする
- 科学技術計算機管理の経験からRedhat系のOSを採用したいのでCentOSの後継Rockyを導入する
- windows10起動後, 煩わしい事前操作なしにアプリを開くようにterminalを開く
Ubuntuやwindows11+WSLgはもっと楽という話もあるが,今回はRocky9@windows10で.
windowsでの設定
Rocky linuxのdownload / install
からlayer.tar.xzをdownloadし解凍する.
$ wget https://github.com/rocky-linux/sig-cloud-instance-images/blob/Rocky-9.0.20220720-Base-x86_64/layer.tar.xz
$ xz -dv layer.tar.xz
予めwindows上の任意の場所にRocky9フォルダを作成しておきlayer.tarをRocky9へ移動しておく.
PowerShell(管理者)> wsl --import Rocky9 . layer.tar --version 2
のようにしてimportする.
を読んだ上でWSL1で運用したいが, WSL1でdnf 利用する時にはerrorがでるため,まずはWSL2で環境を用意し, その後WSL1に変更することにする.以下wslコマンドのまとめ.PowerShell(管理者)> wsl -l -v # importされたOS確認
PowerShell(管理者)> wsl -d Rocky9 # 起動.
PowerShell(管理者)> wsl --shutdown # shutdown
PowerShell(管理者)> wsl --unregister Rocky9 # uninstall
PowerShell(管理者)> wsl --set-version Rocky9 1 # WSL1/WSL2の切り替え
Rocky9内での設定
# dnf update -y
windows機からwsl上のRocky9へsshでログインするためにRocky9上でssh-serverを立ち上げる.しかしsystemctlがPID 1で起動していないため対策が必要.https://www.netmarvs.com/archives/5597)
からgenieをdownload / install (参考:# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf install daemonize -y
# dnf install wget -y
# wget https://github.com/arkane-systems/genie/releases/download/v2.5/genie-2.5-1.fc36.x86_64.rpm
# dnf install ./genie-2.5-1.fc36.x86_64.rpm
# genie -s
(daemonizeのために8が必要)これでgenie -sを実行したあとにはsystemctlが使えるようになる.(Ctrl-Dするとgenieから抜け再びsystemctlが使えなくなる)
通常のtool群
# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# dnf groupinstall "Development Tools" -y
# dnf install openssh* iproute vim passwd wget xterm x11* procps-ng gnuplot -y
# passwd
wsl1でsystemctlを使うためにpython3で書かれたsystemctl3.pyに置き換える
# cd /usr/bin
# mv systemctl systemctl.org
# wget https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl3.py
# mv systemctl3.py systemctl
# chmod +x systemctl
sshの設定
# grep PasswordAuth /etc/ssh/sshd_config
PasswordAuthentication yes
# systemctl start sshd.service
上記コマンドによりwindowsセキュリティ警告が出てくるので許可する.
一般ユーザの作成
# useradd foo
# passwd foo
wslから一度抜け,WSL2からWSL1へ変換.
PowerShell> wsl --set-version Rocky9 1
一般ユーザで入り直す
PowerShell> wsl -d Rocky9 -u foo
$ ssh hoge.server.com
外部サーバへアクセスできることを確認する.
外部サーバがCentOS7で構築されている場合などのときに以下のようなerrorで接続できない場合
$ ssh XXX.XXX.XXX.XXX
ssh_dispatch_run_fatal: Connection to XXX.XXX.XXX.XXX port 22: error in libcrypto
を参考に以下のコマンドでSHA1暗号化ポリシーをアクティブにすることで接続できるようになる.
# update-crypto-policies --set DEFAULT:SHA1
再びwindowsでの設定
ssh-server@Rocky9の自動起動
を使ってwindows機再起動した時の設定を自動で行う
Xwindow systemの構築
xmingあるいはVcXsrvをinstallする.
Discussion