【Bash】Windows Subsystem for Linux【WSL】12
■ このスレッドは過去ログ倉庫に格納されています
やんごとなき理由でWindowsを使わざるを得ない人へ朗報!
WindowsでもLinuxを使うことは出来ます!!!
本物の?Linuxじゃない?WSLはいいえ本物のLinuxです!
正しくは本物のLinuxを使えるようにする仕組みです。
インストールされるディストリは本物のUbuntuなのです。
systemdが動いていないから本物ではない?いいえDockerと同じです。
Dockerでもsystemdは動きません。
Linuxにとってsystemdは必須ではありません。
■ドキュメント
https://docs.microsoft.com/ja-jp/windows/wsl/
■WSLのDockerとの連携
https://docs.docker.com/desktop/windows/wsl/
◆前スレ
【Bash】Windows Subsystem for Linux【WSL】11
https://mao.5ch.net/test/read.cgi/linux/1627507889/ wsl1の話で恐縮なんだけど、
HOME 環境変数を
windows側は C:\Users\bob\home
wsl側は /home/bob
みたいに別々にしているんだけど、
wsl側から exe を呼んだ際にHOME環境変数が消えてしまうんですが、そういうものですか?
たとえば、
powershell から kubectl.exe 呼んだ場合 C:\Users\bob\home\.kube
wsl から kubectl.exe 呼んだ場合、HOME環境変数が消えてしまって、
C:\Users\bob\.kube
みたいに同じexeなのですが、見るファイルがちがってしまって困っています。 powershellの代わりに、慣れているzshを使いたくてwsl使っているという感じです。 Windows側ではHOME=%USERPROFILE%にしてるから分らんけど、wsl上で
$ cmd.exe /c echo "%HOME%"
したらどうなる?
なんとなくkubectl.exeが勝手に動作を切り替えてるだけのような気がする $ cmd.exe /c echo "%HOME%"
→ %HOME%
でした。
$ cmd.exe /c echo "%HOMEDRIVE%"
→ C:
$ cmd.exe /c echo "%HOMEPATH%"
→ \Users\bob 消えてんねえ
psからとwslからのcmd.exe /c set見たい うーん、うちだと "%HOME%" も出てくるけどなあ
環境変数HOMEの設定は、Windowsのコントロールパネルのユーザ環境変数の設定あたりでしてる?
単純に cmd.exe をWindows+Rから実行して、
> set H
した時にも出てこないのかしらん ああ、ごめん訂正
今はユーザ環境変数でHOMEを設定しなくてもデフォルトで設定されてるのね(Windows11)... うがー、ごめんごめん
Windows11でもHOMEは設定されてないわ
#TeamViewerでWindows11に接続してWin+R->cmd.exe[enter]したら、呼び出し元の(環境変数HOME設定済みの)Windows10環境のcmd.exeを実行してた(恥 すみません。どうやら wsltty という mintty ベースのターミナルで使っていると、
cmd.exe /c set
→ HOME設定されてない
wsl の ubuntu のターミナル(スタートメニューの「Ubuntu」で起動するターミナル)からだと
cmd.exe /c set
→ HOME=C:\Users\bob\home
にちゃんとなりました。
windows terminal で Ubuntu 開いたときも HOME はあった。
どうやら wsltty が怪しいみたいです。 wslttyだと、$SHLVLが一つ多くなるというのも関係あるのかな? ローカルホストフォワーディング?が急にできなくなってしまった、まいったな cmderでwsl使ってるんだけど、スタートアップコマンドが{WSL::bash}だとなぜかvimやemacsでマウスのテキスト選択が効かない
{cmder::Cmder}にしてwsl立ち上げる場合は問題なくテキスト選択できて、ホストとのクリップボード共有がちゃんと効く
スレチかもだけどcmderユーザ多いよね?
めちゃ困ってるのでどなたか助けてください... なんかlocalhostforwardingが効かない事が出てきた、おま環かなあ >>305
>>247のキーボードレイアウトがUSから変更できない問題は? キーボードがusになってたらこれで直るかも
apt install x11-xkb-utils
setxkbmap -layout jp >>306
どうだろ。>>305 で貼ったissueを読んだ感じだと、続編待ちかな。右Shiftキーの問題が、>>247の推測どおりUS配列から変えられないことに起因していれば、修正されると思う。
開発からのコメント内容は
1)ずっとWin11だと思ってたけど、Win10だったのね。
2)Win10の日本語配列で問題の再現ができた
3)Win10のUSキー環境では再現されない
4)Win11はどの配列でも再現されない
5)OSの差異に対応するパッチの検討を行う
らしい。
>>307
それWin11での話でしょ。Win10では通用しない。 久しぶりにWSLのubuntu使おうとしたら起動せず、色々試してたらWSL自体が反応せず
ぐぐると一度無効化してから再度有効化したら直ったって人が多い様で試してみたけど変化無し
多分22H2にアップデートしてから一度も使ってない位で、いつこうなったのか分からんわ
VMwareだと設定したメモリを仮想環境に割り当てますが、WSLならWinと共用で動的に使えるんですかね? >>309
ubuntuのフォルダを移動したんじゃない?
違ったらごめん。 wslg 使用時だと /etc/X11/Xsession.d/* は起動されないんでしょうか?
Wayland 使用だから /etc/xdg/Xwayland-session.d/* かと思いそちらにも配置しましたが起動されませんでした。
やりたいことは wsl 起動時に setxkbdmap と xset を起動してキーボードレイアウトの変更と漢字キーのリピートを解除することです。
/etc/wsl.conf の boot セクションの command 欄での起動は Windows 10 のため使用できませんでした。 sudo apt install input-remapper
した後に何をすべきかは知らんけど 同じUbuntuバージョンを二つ使用したい場合はexportだのinport等して出来るけど
容量が倍になるし
やはりユーザーを新しく設けてやった方がいいよね
同時に稼働は出来ないけど違うデスクトップ環境をインストール出来るし便利だよねgnomeをインストールしてみたら普通に稼働してる
まあ仮想ウインドウで他のバージョンを使用すれば両方共にシームレスに利用できるけとけど
あくまでも同じバージョンを使いたい場合ね >>309
WSLはそれくらいのトラブルは普通にあると思わなきゃならない
WSL環境を全消しして一からやり直したとしても駄目な場合もあるかもしれない
その場合おま環と諦めたほうが幸せ Video acceleration API (VA-API) now available on Windows!
https://devblogs.microsoft.com/directx/video-acceleration-api-va-api-now-available-on-windows/
GPUでビデオをエンコード・デコード ~Linuxで普及の「VA-API」がWindowsで利用可能に
Windows 10 November 2019 Update/Windows 11以降で
https://forest.watch.impress.co.jp/docs/news/1479083.html Ubuntuをインストールすると必ずFireFoxがデフォになってるのに最近FireFoxに厳しいよね
何故なの?
自分は昔から好きなのに悲しいわ これからはググるよりchatGPTだよね
結構良い答えが返ってきた 考えたらchatGPTってネット上から情報を得てAIでその情報を旨く編集してるんだよね
そしたら今までHPに挙げていた人達は誰も見なくなるのでアホらしくなって新しい情報とか発信しなくなるんじゃないかな
その結果chatGPTはどうしていくんだろ
専門家を雇っても膨大な情報になるから
知りたい情報とかすぐには答えられなくなりそう
まぁ自分みたいな単純なことではないのだろうけどね qiitaもムラがあるしな、便利だけど
鵜呑みにするようなクオリティじゃない >>323
どんな言葉でググればいいのかわからない人にはいいんじゃないの Win10のキーボード問題の修正版、プレリリースになってたのね
https://github.com/microsoft/wslg/releases
WSLの更新として降りてくるのは、早くて来月中頃かな >>327
sudo apt install -y build-essential Windows Terminalで日本語入力してると確定前の文字が小さく表示されるんだけどこれって直せる? おすすめじゃなか
build-essentialか、代わりとなるコンパイラを入れることが必須くさ chatGPTより
windowのwsl2でインストールするubuntuとwindowと関係なしに
ネイティブにインストールするubuntuとの違いは何ですか?
WSL2はWindows Subsystem for Linuxのバージョン2であり、Windows 10の機能の1つです。
WSL2を使用すると、Windows上でLinuxを実行できます。
UbuntuをWSL2でインストールする場合、Windows 10の機能を介して実行されます。
一方、ネイティブにUbuntuをインストールする場合、
Ubuntuが直接コンピュータにインストールされ、Windowsとは関係ありません。
そのため、WSL2で実行されるUbuntuとネイティブにインストールされたUbuntuの主な違いは、
実行環境が異なることです。
WSL2を使用する場合、UbuntuはWindowsの仮想環境内で実行され、
Windowsの機能を利用できます。
これにより、WindowsとUbuntuの間でファイルを共有したり、
WindowsのアプリケーションからUbuntuのアプリケーションを呼び出したりすることができます。
一方、ネイティブにインストールされたUbuntuは、Windowsの機能を利用できず、
Ubuntu自体が直接コンピュータにインストールされるため、完全なLinux環境を提供します。
また、WSL2を使用する場合、Windowsのファイルシステムが利用可能であり、
WindowsのアプリケーションからUbuntuのファイルにアクセスすることができます。
しかし、ネイティブにインストールされたUbuntuでは、Windowsのファイルシステムは利用できず、
Ubuntuのファイルシステムが提供されます。
総合すると、WSL2を使用する場合、WindowsとLinuxの間でシームレスな統合が可能であり、
WindowsとLinuxのアプリケーションを同時に実行できます。
しかし、ネイティブにインストールされたUbuntuは、Windowsとは完全に独立しており、
完全なLinux環境を提供します。 さらなるenerete response
カーネルの違い:WSL2は、Windowsのカーネルを使用しているため、ネイティブのUbuntuとはカーネルが異なります。
これは、WSL2のパフォーマンスに影響を与える可能性があります。
ファイルシステムの違い:WSL2は、Windowsのファイルシステムを使用しているため、ネイティブのUbuntuとはファイルシステムが異なります。
これは、ファイルのアクセスやパーミッションに影響を与える可能性があります。
ハードウェアのアクセス:WSL2は、Windows上で動作しているため、ハードウェアに直接アクセスすることはできません。
これは、WSL2で動作するアプリケーションが、ネイティブのUbuntuで動作するアプリケーションよりも制限される可能性があることを意味します。
GUIの制限:WSL2は、GUIアプリケーションを直接実行することができません。
代わりに、Windows上で動作するXサーバーを使用してGUIアプリケーションを実行する必要があります。
これにより、WSL2で実行されるGUIアプリケーションのパフォーマンスに影響を与える可能性があります。
つまり、WSL2は、Windows上でLinuxを動作させるためのサブシステムであり、ネイティブのUbuntuとはいくつかの違いがあります。
ただし、WSL2は、WindowsとLinuxの両方の機能を提供するため、特定の用途には便利な場合があります。 さらなるregenerate response
WSL2 (Windows Subsystem for Linux 2) 上でインストールする Ubuntu と、ネイティブにインストールする Ubuntu にはいくつかの違いがあります。
ハードウェアアクセス: WSL2上のUbuntuは、Windows OSのカーネルを介してハードウェアにアクセスするため、ハードウェアアクセスに制限があります。
例えば、WSL2上のUbuntuは、USBデバイスやBluetoothデバイスなどの一部のハードウェアを直接アクセスすることはできません。
パフォーマンス: WSL2上のUbuntuは、Windows OS上で動作しているため、ネイティブにインストールしたUbuntuに比べてパフォーマンスが劣る場合があります。
しかし、WSL2は以前のバージョンのWSLに比べて改良されており、パフォーマンスの改善が見られています。
ファイルシステム: WSL2上のUbuntuは、Windowsのファイルシステムを使用するため、ファイルのパス表記が異なります。
また、WSL2上のUbuntuは、Windowsのファイルシステムに保存されているファイルにアクセスすることができます。
ソフトウェア: WSL2上のUbuntuは、Linux用に設計されたソフトウェアを実行できますが、Windows用に設計されたソフトウェアを実行することはできません。
また、WSL2上のUbuntuで実行されるLinux用のソフトウェアは、ネイティブにインストールされたUbuntuで実行されるものとは異なる場合があります。
ネットワーク: WSL2上のUbuntuは、Windows OSのネットワーク設定を継承するため、ネットワークの設定に制限があります。
ただし、WSL2では、Windows OS上の仮想マシンのようにネットワークを設定することができます。
以上のように、WSL2上のUbuntuとネイティブにインストールしたUbuntuには、いくつかの違いがあります。
ただし、WSL2はLinux環境をWindows OS上で実行するための便利なツールであり、多くの場合、
WSL2上のUbuntuで必要な作業を行うことができます。
Regenerate response これが最初の返事でした
WSL2(Windows Subsystem for Linux 2)を使用してUbuntuをインストールすると、WindowsとUbuntuの間に仮想化レイヤーがあります。
これにより、Windowsシステム上でLinuxアプリケーションを実行できるようになります。
一方、ネイティブにインストールされたUbuntuは、Windowsとはまったく関係ない別のオペレーティングシステムです。
Ubuntuは、ハードウェアリソースを直接制御でき、Windowsとは完全に独立して実行されます。
したがって、WSL2上のUbuntuはWindowsシステムに依存し、Windowsのファイルシステムやハードウェアリソースを使用することができます。
一方、ネイティブにインストールされたUbuntuは、自身のファイルシステムやハードウェアリソースを持っています。
WSL2上のUbuntuは、Windowsアプリケーションから直接アクセスできるため、WindowsとLinuxのアプリケーションをシームレスに統合できます。
しかし、WSL2上で実行されるアプリケーションは、WSL2レイヤーを介して実行されるため、パフォーマンスの低下が生じる場合があります。
ネイティブにインストールされたUbuntuは、完全なLinux環境を提供するため、WSL2上のUbuntuよりも高速でパフォーマンスが良い場合があります。
しかし、Windowsアプリケーションとの統合は、WSL2上のUbuntuほどシームレスではありません。 AIの返答は長いよな
それでごまかしてるところあるんだろうけど 今北産業ってgptchatに言ったら3行でまとめてくれないかな。 他の人から簡潔に回答してほしいと言われたので、簡潔に説明できますか?
WSL2を使ってUbuntuをインストールすると、Windowsの仮想環境内で実行され、WindowsとLinuxがシームレスに統合されます。
一方、ネイティブにUbuntuをインストールすると、完全に独立しており、Windowsとは関係ありません。 長文なのにオーバーヘッドによる速度低下に触れられていないのがなー
WSLからWindows版のffmpeg.exe実行できるけど速度低下。。。 とりあえずMicrosoft アプリなんちゃらで何インストしたら良いの•́ω•̀)?
教えてえろ過ぎて逮捕された人(人>ω<) WSLでLinuxのFFMPEG実行するのと正直にWindows用のffmpeg実行するのどっちが速いんだろ 有難うございました。ところで質問は変わりますが、あなたの情報はいつまでの情報をとりえているのでしょうか。最近の情報とか入手していますか?
私はOpenAIが提供する大規模言語モデルの1つであり、2021年9月までの情報を含めた学習データをもとに回答を生成しています。
ただし、私は常に更新されており、新しい情報を学習しているため、最近の情報にも対応しています。
ただし、私が回答する際には、情報の正確性や信頼性を保証することはできません。
やっぱりね 日本語と英語での違いも聞いてみた。
英語での質問と日本語での質問の違いは、主に以下のような点が挙げられます。
情報量: 英語の方が日本語よりも多くの情報を伝えることができます。そのため、専門的な質問においては、英語で質問する方が詳細な情報を得やすいと言えます。ただし、適切な単語や表現が使えない場合は、意図が伝わらず回答が得られないこともあります。
専門性: 英語は国際的な言語であり、専門的な分野でも広く使われています。そのため、専門的な質問においては、英語で質問する方が適切な回答を得やすい場合があります。
回答者の数: 英語で質問すれば、回答者の数は日本語よりも多くなる傾向があります。そのため、より多くの専門知識を持った人が回答者として現れる可能性が高くなります。
ただし、日本語でも専門的な質問に対して十分な回答を得ることができる場合があります。また、英語が得意でない場合には、適切な単語や表現が使えず回答が得られない可能性があるため、自分が使いやすい言語で質問することが大切です。
Regenerate response IT技術に偏った言語理解のあるDeepLが欲しい所 >>346
WSL介するのはオススメしない
Windowsのstaticバイナリを素直に使うか、MXかarchかpuppyでUSB起動してネイティブに動かせ
一般distroをUSB接続のストレージにインストールしても良い
前者なら、git for windows入れてgit bash使えば、コマンドに困ることは滅多にないはず wsl側からwindowsのexeを実行すればいいんじゃね >>352
それでも遅くなるんだな
FullHD動画を5分くらいフィルタ皆無で実行してみれば分かる
-acodec copyで 仮想マシンレイヤを一枚挟むとはいえ
直接CPU命令を実行できると思うけど
そんな差があるんやな.. >>353
検証してみるから同条件でのバイナリあるところ教えて >>356
WindowsでLinuxからexeを動かしてCPU命令の実行速度に差がある分けないだろw
だからファイルシステムの話も知らないってこと
>>355みたいに関係ないとか言っちゃってるしw まあ影響あるのは主にIO周りの差だとして
呼出規約とシステムコールの違いの吸収のコストってどんなもんなんだろうな ほぼネイティブなUbuntu及びDebianのxfce4とgnomeのデスクトップ環境がシームレスに出来上がったからもういいや
ここでwslこの事知り色々教えて貰って感謝してる
色々勉強になったしありがとね
あとはボチボチと他の事に挑戦してみる ディスクの圧縮を一度でもすると性能劣化が激しい。
通信もゲロ遅くなる。
あっしゅく解除してもダメ。
これはクリインか。。 >>342
WSL2を使ってUbuntuをインストールすると、Windowsの仮想環境内で実行され、WindowsとLinuxがシームレスに統合されます。 エンター押したら途中で送信されてしまったな
もともとシームレスに統合されてないから問題が発生してるのを無視してるだろ Virt-Managerが本当に使えるとはびっくらこいたよ。 >>334
>そのため、WSL2で実行されるUbuntuとネイティブにインストールされたUbuntuの主な違いは、
実行環境が異なることです。
肝心なことは上の一文だけしかない
ChatGPTは長文ポエムが得意という長所かつ欠点がある じゃあBingで
WSL2上のUbuntuとネイティブにインストールされたUbuntuの違いは、WSL2では実際のLinuxカーネルが管理対象VM内で使用され、システムコールの完全な互換性がサポートされ、LinuxおよびWindowsオペレーティングシステム全体でパフォーマンスが向上します¹。また、WSL2上のUbuntuでは環境構築において勝手が異なる場合があります²。
また、WSL 2により、Windows上でのLinux GUIアプリケーションの使用がネイティブで自然に感じられるようになります³。
ソース: Bing との会話 2023/3/12(1) WSL バージョンの比較 | Microsoft Learn. https://learn.microsoft.com/ja-jp/windows/wsl/compare-versions アクセス日時 2023/3/12.
(2) WSL2上のLinuxとネイティブLinuxの違い – OS.ManiaX. https://osmaniax.1banzaka.com/linux/wsl2%e4%b8%8a%e3%81%aelinux%e3%81%a8%e3%83%8d%e3%82%a4%e3%83%86%e3%82%a3%e3%83%96linux%e3%81%ae%e9%81%95%e3%81%84/3148 アクセス日時 2023/3/12.
(3) WSL で Linux GUI アプリを実行する | Microsoft Learn. https://learn.microsoft.com/ja-jp/windows/wsl/tutorials/gui-apps アクセス日時 2023/3/12. >>361
どういう状況かわからんが仮想ディスクの問題なら
export → (tarファイル) → import
という方法もあるんでは やれば分かるよ
Windows用staticバイナリはffmpeg公式サイトからたどれば見つかるしね Ubuntu開いたらrootでログインになってた人とかいる?22.04.1LTS
他のは入れていないので知らんけど
今まではユーザー名でログインできていた
久し振りにストレージをWindows11に変えたら
こうなっていた
多分何か変更していて忘れていただけかもしれん chatGPTありがたがってる人らってこれが質問者の欲しかった回答に見えるの? Ubuntu 22.04.1 LTSでは、通常rootユーザーでのログインは無効
ストレージをWindows11に変更ってのが意味わからんけど、それがrootユーザーのログインに影響を与えることはおそらくない
rootユーザーでログインできてるなら、/etc/passwdファイルに、rootユーザーの設定が書いてある
ChatGPTはこんな感じの回答を出したぞ ・export/importで移行した
・passwdファイルにあるデフォルトのユーザーを削除した(UIDが変わったとかも)
・レジストリにあるDefaultUidキーが無い、誤っている
だとrootになるね >>374
ない
wsl -l --onlineで一覧表示 >>373
>>379をそのままいれたらそうなるから
>>370はWSLという単語追加した /etc/wsl.conf で
[user]
default=myuser
などとやっておけばexport/importするときにも便利 >>370
やってみたけど
Error: 0x80070057 ???????????????となった
>>373
youserx:1000:1000:youser,,,:/home/youser:/bin/bash
同じPCにWindows10のストレージとWindows11のストレージを入れ替えたということ
>>375
export/importはやったことがあるがwindows11でやったかまでの記憶はない
ストレージが3つあるのでそれをいろいろ入れ替えてはいろいろ試しているので
レジストリもいじって新しく記入したが駄目だったのでそれは消去した
レジストリにあるDefaultUidキーが無い、誤っているはよくわからない
でもこれが一番の原因かもしれない
でしかたがないので#の状態からlogin youser そしてパスワードで
通常のyouserに戻して起動させてる
いちいち面倒くさいけど >>379
レジストリは仕組みとしてそうなってるって話だから、Linux側に >>378 の設定を入れるのがいいと思うよ >>378
コマンドで駄目だったので素通りしていました
すみません
>>380
>>378の設定で出来ました。
でこれはあくまでも起動時での対処法かなと思うので
再度この状態で>>370のコマンドをやってみたらなんのエラーもなかったので
wsl.confの設定をコメントアウトして再起動したら元に戻りました
defalt userがrootになっていたためエラーになったのかもしれません
所謂wslやwsl2に対してなんの知識もなく触り続けた結果がこうなったんでしょうね
皆さん有難うございました >>374
配布物としては無い
22.04.1から手動で22.10に上げたけどな
手動で23.04に上げる予定
手動っていうかsudo apt full-upgradeするだけだが >>382
ありがとうございます
defenderもあるしセキュリティとか気にすることでも無いんだけど、もし無いならサーバーでも使ってるAlmaに切り替えようかなあと
あるならアプデしてUbuntu使うか >>383
ストアからUbuntu 22.04入れて、あとはネットに書かれている通りの手順で出来るよ
入れた直後なら、作業時間もかなり短く済むはず 要らねえだろ
ストアでdistro選んでインストールすぐ終わるからな
Windows terminalのデフォルトにするとか、wslコマンドの使い方とか、/mnt/cとか
あと何だべ
GUIは使ってないから分からん
%USERPROFILE%のフォルダにcpコマンドでコピーしてWindowsアプリで操作しても良いだろう Win10のWSLgで右Shiftキーが反応しない問題を修正したWSLのプレリリース(v1.1.5)が来ていたので、日本語キーボードを認識しない問題も一緒に解決しているか試してみた。今日付でv1.1.6が出ていたので、検証は1.1.6で行っています。
https://github.com/microsoft/WSL/releases/1.1.5
先に結論からいうと、解決しているようです。これまでは何をしてもUSキーボードとして認識していたWin10環境でも、正しくJPとして認識するようになっています。
ただし、これはMS IME(新旧問わず)を使っている場合の話。ATOKを使用しているときは変わらずUSとして認識します。途中でMS IMEに切り替えれば正しく認識するので、WSLgを使うならMS IMEで使う必要がありそう。 >>390
それってstore版のwsl2のこと言ってます?
非store版はそもそもできてたので >>391
ちょっと何言ってるか分からない。Win10のWSLgはStore版にしか存在しないけど。 ■ このスレッドは過去ログ倉庫に格納されています