WSLでUbuntuマシンを用意する

【2025年版】Windows 11 で WSL を使う方法(Ubuntu インストール・複数マシン構築ガイド)

Windows 11 で Linux 開発環境を簡単に構築できる WSL(Windows Subsystem for Linux)。 本記事では WSL の導入手順・Ubuntu マシンの作り方・複数環境を使う方法 をまとめました。 「Ubuntu を使いたい」「複数の開発環境を使い分けたい」という方におすすめの実践ガイドです。

WSL2, Windows 11, Ubuntu インストール, 複数インスタンス, 開発環境, コマンド解説

目次

  1. WSL とは?
  2. 事前要件
  3. 最短インストール方法
  4. 特定ディストロを指定してインストール
  5. WSL バージョン確認と変更
  6. 初回起動後のセットアップ
  7. 複数の Ubuntu インスタンスを作る方法
  8. よく使うコマンド集
  9. GUI・ファイル連携
  10. トラブルシューティング
  11. 運用のコツ

WSL とは?

WSL(Windows Subsystem for Linux)は、Windows 上でネイティブに Linux を動かせる仕組みです。 Ubuntu, Debian, Fedora などを選択でき、開発環境として人気です。特に Windows 11 では 「wsl –install」 で簡単に導入できます。

事前要件

  • Windows 11(最新更新推奨)
  • 管理者権限で PowerShell または Windows Terminal を実行できること
  • BIOS/UEFI でハードウェア仮想化が有効

最短インストール方法

管理者 PowerShell で以下を入力

wsl --install

再起動後に Ubuntu が自動的にインストールされます。 初回起動時にユーザー名・パスワードを設定します。

特定ディストロを指定してインストール

利用可能なディストロ一覧を表示

wsl --list --online

Ubuntu 22.04 を指定してインストール

wsl --install -d Ubuntu-22.04

WSL バージョン確認と変更

インストール済みのディストロと WSL バージョンを確認

wsl -l -v

Ubuntu を WSL2 に変換

wsl --set-version Ubuntu 2

新規インストールを WSL2 に設定

wsl --set-default-version 2

初回起動後のセットアップ

パッケージ更新

sudo apt update && sudo apt upgrade -y

開発ツール導入

sudo apt install -y build-essential git curl vim

複数の Ubuntu インスタンスを作る方法

方法 A:テンプレートをエクスポート → インポート

既存の Ubuntu をテンプレート保存

wsl --export Ubuntu ubuntu-template.tar

新しいインスタンスとしてインポート

wsl --import ubuntu-dev C:\WSL\UbuntuDev .\ubuntu-template.tar --version 2

方法 B:Microsoft Store から複数バージョンを導入

「Ubuntu」「Ubuntu 20.04」「Ubuntu 22.04」を別々にインストールすれば複数利用できます。

よく使うコマンド集

wsl -l -vインストール済みディストロ一覧 wsl -d UbuntuUbuntu を起動 wsl --terminate UbuntuUbuntu を終了 wsl --unregister UbuntuUbuntu を削除(注意)

GUI・ファイル連携

Windows 11 の WSL は GUI アプリも動作可能です。 Windows ファイルシステムは /mnt/c/Users 経由でアクセスできます。

トラブルシューティング

  • 管理者権限で実行しているか確認
  • BIOS で仮想化が有効か確認
  • Windows Update で最新に更新

※本記事は WSL 公式ドキュメントを基にまとめています。Windows のバージョンによって挙動が異なる場合があります。
公式情報:Microsoft Docs – WSL

以上、ChatGPTで作った記事です。

WPAとWPA2

WPAとWPA2の違いと仕組み

Wi-Fiのセキュリティ方式には WPA(Wi-Fi Protected Access)と WPA2 があります。
両者は無線通信を暗号化して第三者による盗聴や不正アクセスを防ぐ仕組みですが、暗号方式や安全性に違いがあります。

WPAとWPA2の比較

特徴 WPA WPA2
暗号方式 TKIP (Temporal Key Integrity Protocol) AES (Advanced Encryption Standard)
安全性 中程度(TKIPは一部脆弱) 高い(AESにより強力な暗号化)
導入時期 2003年 2004年
特徴 既存のWEP機器でも利用可能、互換性重視 強力な暗号化で安全性重視、WPAの上位互換

暗号化の流れの図

.wifi-flowchart { display: flex; flex-direction: column; align-items: center; font-family: Arial, sans-serif; } .wifi-box { border: 2px solid #2196F3; border-radius: 8px; padding: 12px 20px; margin: 10px; background-color: #E3F2FD; width: 280px; text-align: center; position: relative; } .wifi-arrow-down { width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-top: 15px solid #2196F3; margin: -5px 0 10px 0; }
端末がWi-Fiに接続要求
アクセスポイントと認証
(WPA/WPA2で異なる)
暗号化キーを生成
WPA: TKIP / WPA2: AES
通信データを暗号化して送受信

図の説明

  • 認証:端末がネットワークに接続する際、IDやパスワードで認証。
  • 暗号化キー生成:WPAはTKIP、WPA2はAESで暗号キーを作成。
  • 暗号化通信:生成されたキーで通信データを暗号化して安全に送受信。

まとめ

  • WPAは互換性重視、TKIPを使用。安全性は中程度。
  • WPA2はAESを使用して高い安全性を確保。現在の標準。
  • 新しい端末では、WPA2またはWPA3を利用するのが推奨。

ページング方式について

.flowchart { display: flex; flex-direction: column; align-items: center; font-family: Arial, sans-serif; } .box { border: 2px solid #4CAF50; border-radius: 8px; padding: 12px 20px; margin: 10px; background-color: #e8f5e9; width: 300px; text-align: center; position: relative; } .arrow-down { width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-top: 15px solid #4CAF50; margin: -5px 0 10px 0; }

ページング方式の仮想記憶とは?

OSの仮想記憶方式のひとつで、プログラムが使うメモリを「ページ」という固定サイズの単位に分割して管理します。
実際の物理メモリは「フレーム」という同じ大きさの領域に分けられ、ページとフレームを対応づけて使います。
この仕組みにより、プログラムは実際の物理メモリより大きな仮想アドレス空間を利用できるようになります。

ページフォルト、ページイン、ページアウトの流れ

プログラムが必要とするページが物理メモリに存在しない場合に「ページフォルト」が発生します。
ページフォルトを解消するため、ディスクからページを読み込む処理を「ページイン」と呼びます。
また、メモリに空きがない場合、既存のページをディスクに書き戻して空きフレームを作る処理を「ページアウト」と呼びます。

図:ページングの流れ

CPUがページ参照
そのページは物理メモリにあるか?
はい → そのままアクセス
いいえ → ページフォルト発生
OSがディスクからページを読み込む
(ページイン)
空きフレームがなければ既存ページをディスクへ書き出す
(ページアウト)
ページをフレームに配置
CPUが再びページにアクセス

用語説明

  • ページフォルト:必要なページがメモリにないときに発生する例外。
  • ページイン:ページフォルトを解消するため、ディスクからページをメモリへ読み込む処理。
  • ページアウト:メモリに空きがない場合、既存ページをディスクに書き戻して空きフレームを作る処理。

CSMA/CD と CSMA/CA

CSMA/CD と CSMA/CA を図でわかりやすく解説

要点:CSMA/CDは有線で衝突を検出して再送する方式。CSMA/CAは無線で衝突を回避する方式(RTS/CTSやバックオフ)。

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

主に古いイーサネット(ハブ接続など)の仕組み。送信前にキャリアを確認し、衝突を検出できればランダム遅延後に再送する。

端末A 端末B 送信 同時送信 Collision!

図の説明(CSMA/CD)

  • 送信前にケーブル上のキャリア(信号)を確認する。
  • 複数端末が同時に送信して衝突(Collision)が起きた場合、衝突を検出する。
  • 衝突検出後はジャミング信号を送り、各端末はランダムな時間だけ待ってから再送(バックオフ)。
  • この方式は有線(ハブ接続など)で有効。スイッチングハブ環境では衝突は基本的に発生しない。

CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)

無線LAN(Wi-Fi)で使われる方式。無線は送受信が同時に行えず衝突検出が難しいため、衝突を回避する仕組み(バックオフ、RTS/CTS)を用いる。

端末A AP(基地局) 端末C RTS CTS(ブロードキャスト) DATA ACK 端末C(端末Aを検知できない可能性)

図の説明(CSMA/CA)

  • キャリア感知:送信前にチャネルが空いているかをチェックする。
  • バックオフ:空いていてもすぐ送らず、ランダムな待ち時間(バックオフ)を置いてから送信して衝突を抑える。
  • RTS/CTS(隠れ端末対策)
    1. 送信側(端末A)がAPにRTSを送る。
    2. APがCTS(送信許可)をブロードキャストし、周囲に「この時間帯は端末Aが送信する」と通知する。
    3. これにより端末Cのような「端末Aを直接検知できない端末」も送信を控え、隠れ端末問題を軽減する。
  • ACK:データ受信後にAPからACKを返すことで送信成功を確認する。

ポイント整理

  • CSMA/CD:有線向け。衝突を検出して再送。ハブ環境で有効。
  • CSMA/CA:無線向け。衝突検出が困難なため回避。RTS/CTSやバックオフで衝突を減らす。

最近イラっとしたこと

イラっとすることがあった時、自分を落ち着かせるためにそのことをチラシ裏に殴り書きすることがある。

少し前にイラっとしたことがあり、そのときに書いたものを見つけた。ずっと投稿していなかったので、リハビリ代わりに投稿する。

とある動画投稿者についてだ。

たまたま流れてきた某サイトのショート動画で、彼(男女どちらとは言わないが、ここでは彼としておく)は動画中、「鬱は甘え。お前が悪い。」と宣言した。まあ、インフルエンサーみたいな仕事をしている人は、それくらい過激なことを言ってバズらせようとしたんだろうと思った。

以下はチラシ裏に書いたことを誤字だけ直したもの。


激しい怒りを感じた。

彼の動画を見た。変なところで切り抜きされているんじゃなくて、ほんとに言ってる。

この人は何がしたくてこんなことを言っているのだろう。何をしている人なのか調べたが、よくわからない。日本国外に住んで、日本人男性向けに「モテるためには」的なことをビジネスとして教えているっポイ。

いやな動画を見た。すぐブロックした。

初めて動画を見てから数日たったが、いまだに怒りが消えない。

なんでこんなにむかつくんだろう。

  • 専門家でもないのに、うつ病は甘えと言ってしまう浅はかさ
  • インフルエンサーがそれをいうと、真に受けた人がうつ病への誤った理解をする危険がわかっていないこと
  • 海外に住んでる俺かっけーみたいな態度が鼻につく
  • やつのビジネスが精神が弱っている人を下げることでなりたっていること
  • これらのイライラポイントを誰かに話せば、「効いてるw効いてるw」とあおられることが想像できること

何を言っても、「効いてるw効いてるw」で返されることが想像でき、口喧嘩では勝ち目がないことがイライラを加速させる。いや、勝ち目がないというか、何を言っても無駄なのがわかってしまう。

ネタだとわかっていても、イライラするものはイライラする。

弱者を馬鹿にし、その弱者より自分はマシだと考えている準弱者をターゲットにしていることが、ただひたすらむかつく。

自分の周りにはこいつを本気で崇拝する人間はいないと信じたい。

日本でこいつに影響をうけてしまう想像力のない人間が、誰かを傷つけることがないといいが。。。と思う。

ラーメン二郎 ひばりが丘店に行ってきた

 もちろん野菜マシマシ。。。ではなく、野菜まし、ニンニク少な目、辛目で!
もう年かな。。。学生の頃は野菜マシマシでも余裕だったのに。。。でもうまかったなあ。

写真のこれで、野菜増してないんだぜ。。。

 久々に平日休みをとれたので、食べに行った!二郎は1年ぶり。

 ひばりが丘店は、二郎の中でも人気な店舗と聞いていたので、開店の30分前に店舗に到着。ちなみにひばりが丘駅から、徒歩5分かからないくらいの場所にある。

。。。もう並んでる。

 店の前には、すでに20人以上の列ができていた。私服姿のおっさんが6割(俺も)、サラリーマン風のスーツの男性が2割、学生が2割といったところ。なんとカップルも1組いた。

 店内に入れたのは、開店から20分後。さすが二郎、回転が早い。食べ終わった後に外に出て気が付いたが、12時以降になると、日差しがもろに照り付けてきていた。(並んでいる人たち大丈夫だったかな?)自分が並んでいた時間帯(AM11時ごろ)は、ビルの陰に入っていたのでよかったが、この時期(8月)に列で待つのは大変だろう。

 食券を購入し、ニンニクを聞かれるのを待つ。ちなみに小ラーメンは、850円なり。厨房には、40代くらいのおじさん・おばさんの2人がいた。雰囲気は優しそう。素人は来るな!みたいな雰囲気はない。

 味はもちろんうまい。量も多い。ほかの二郎と比べると、味が濃い気がする。パンチのあるスープに、太麺がよく合っている。野菜はちょうどよくゆでられており、シナシナになる一歩手前の触感だった。肉はほろほろほどけるような肉の塊。肉マシしなくても十分なサイズの肉の塊が2つ。大満足だった。

 ぜひ一度食べに行ってほしい。ただ、夏の時期には熱中症には気を付けて!
店内はクーラーが聞いていて涼しいが、外は猛暑だった。

では。

「上京物語」を読んだ感想

Amazon.co.jp: 上京物語 僕の人生を変えた、父の五つの教え eBook : 喜多川泰: 本

こちらを読んだので、その感想をまとめる。内容については、自分で一読してほしい。

あらすじ

 この本は、2部構成になっている。

 第1部は、とある男性「祐介」の物語。この男は、成功したいという思いを胸に、東京で生活をしている。彼の目指す成功とは、人よりお金を稼ぎたい、いい家に住みたい、などの、多くの人が思い描く成功である。『資金がない』『アイデアがない』と、自分で理由をつけながら、結局何もしないまま歳を重ねてしまった、そんなどこにでもいる男の物語が綴られている。

 第2部は、第1部の物語を書いた著者の息子「祐輔」が、その物語を読み、また父親からの手紙を読むシーンに移る。「祐輔」は親元を離れ、東京の大学に通うことになる大学生だ。そんな息子の門出に、息子の人生が素晴らしいものになるようにと、父親は願いを込めて物語を送った。

 父親が書いた物語の後、息子「祐輔」に宛てて、本当に幸せな人生を送るために必要な、破らなければならない常識の殻を5つ挙げている。

 父親のあげているやぶらなければならない常識の殻は、下記の5つ。

  1. 幸せは人との比較で決まる
  2. 今ある安定が将来まで続く
  3. 成功とはお金持ちになることだ
  4. お金を稼げることの中からやりたいことを選ぶ
  5. 失敗しないように生きる

 具体的な成功への方法は書かれていない。自分の幸せの基準は自分で見つけて生きてほしい、失敗を恐れず自分の幸せを見つけてほしい、という父親からのメッセージが綴られている作品だった。

感想

 第1部の物語は、おそらく夢や希望を抱いて都市部に来た、すべての社会人・学生が自己投影できるものだと思う。かくいう私も、お金がない・アイデアがない・コネがない・時間がない、などと言い訳を並べることに労力を使って、何か行動を起こしたかといわれると、何もしていないことに気が付く。

 30歳になる前に、なんて考えているうちに、私は現在28歳。あと数か月で29歳になってしまう。学生時代に考えていた「将来自分は」の将来に、もうすでに片足を突っ込んでしまっている。言い訳ばかりで行動できない自分を守るため、また言い訳を重ねてしまう自分に嫌気がさす。

 自分を変えたいと考えている社会人に、自分の幸せは何かを考えさせ、なにか行動しなければと思わせてくれる本だった。

PS

 マルチビジネスとかでも使われてしまいそうな本だと思った。「失敗を恐れずチャレンジしよう!」、「そのために自己投資しよう!」、「自己投資にこの化粧水を買おう!」みたいな流れで流されてしまいそう。

 自分で学べることは自分で学ぶべきだ。

Vue.js 3の学習メモ③

v-htmlの使い方

プレーンなHTMLを挿入するためのディレクティブ。

どんなとき

指定した要素のinnerHTMLを更新したいとき。

メリット

dataオブジェクトをHTMLとして表示できる。(通常はクロスサイトスクリプティング対策で、HTMLとしては認識されないようになっている。)

実装してみた

  • index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <p v-html="message"></p>
        <p>{{ message }}</p>
    </div>
    <script src="https://unpkg.com/vue@3.1.5"></script>
    <script src="js/main.js"></script>
</body>
</html>
  • js/main.js
const app = Vue.createApp({
    data: function() {
        return {
            message: 'Hello <span style="color:red;">World!</span>'
        }
    }
})
app.mount('#app')

ブラウザで開いてみた。

v-htmlが<p>タグにあるほうは、HTMLとして扱われている。

あんまり利用する機会はなさそうに思う。

注意点

クロスサイトスクリプティング(XSS)に注意しないといけない。

ユーザーが入力する箇所には絶対に使わない。

Vue.js 3の学習メモ②

v-preの使い方

要素とすべての子要素のコンパイルをスキップするときに使用する。

どんな時

ディレクティブが使われていない。マスタッシュとかをそのまま画面に表示したいとき。

メリット

スキップした分、コンパイルスピードが上がる。

実装してみた

  • index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <p v-pre>{{ message }}</p>
        <p>{{ message }}</p>
    </div>
    <script src="https://unpkg.com/vue@3.1.5"></script>
    <script src="js/main.js"></script>
</body>
</html>
  • js/main.js
const app = Vue.createApp({
    data: function() {
        return {
            message: 'Hello World!'
        }
    }
})
app.mount('#app')

ブラウザで開いてみる。

最初の<p>タグには、v-preが入っているので、{{ message }}がそのまま表示された。

使いどころはかなり限られそうかなと思った。