【趣旨と目標】
OSに関する基礎知識、仮想環境へのインストール手順、Linuxのコマンドを本記事を確認することで復習できる、また、親(70歳以上です)に教えて実行できるほど丁寧な説明が目標です(^^;
要約しつつ、画像多め、全力で説明文を書くことで伝わるという認識のもと、全力を出しますw表現も柔らかくしています。
上級者向け(実務に就かれている方)には、コード表記をしている箇所のみを見ていただければ、参考になる記事にしたいと思います。
なお、記事が長くなったため、コマンド練習は、次の記事で行いたいと思います。
環境
・windows11(ホストマシン(自分のPC))
・Arch Linux(ゲストマシン(仮想マシン))
・VMware Workstation 16 Player(非営利目的用)
割愛しているセットアップ
VMwareのインストール
参考サイト:https://segakuin.com/vmware/
内容
・はじめに
・参考サイト
・isoイメージのダウンロードとインストール
・OSの設定
・疎通確認の儀
・パッケージマネージャーを設定
・SSHサーバーを設定し、SSH接続を受け付けることができる設定を行う。
・SSH接続、つまり疎通確認2回目の儀
・さいごに
はじめに
ザクっとやりたいことをリマインド。超初心者に向けて、仮想環境で、Linuxを使える状態までもっていく。そのためにクドイほどに説明する。そして私の技術も向上させる。
もし困ったことがあったらお申しつけください。私も狭い交友関係から全力で指導を乞いますw
全般(参考サイト)
全般、Arch Linuxをvmwareの仮想環境にインストールして、使える状態まで設定することを行います。
1 ArchLinuxのインストール全般について解説されています。
https://youtu.be/l8YPS2itHfU
2 全般について細かく設定要領が記載されたwebサイト
https://wiki.archlinux.jp/index.php/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
isoイメージのダウンロードとインストール
isoイメージのダウンロードとインストールとは。
参考サイト:https://wa3.i-3-i.info/word15853.html
ダウンロードとインストールとは。
参考サイト:https://biz.trans-suite.jp/36572
超簡単にまとめると:「本来CDやDVDという媒体に入っているデータを、データだけファイルにまとめたものをPCに入れて設定する。」ということ。
最初に、イメージをインストールすることが必要ですので、次のwebサイトに接続して、ダウンロードしていきます。
ダウンロードに関する説明(wiki)webサイト:
https://wiki.archlinux.jp/index.php/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89
(wikiとは:協力して情報を共有するためのサイトのこと。)
中々先に進めない(;'∀')
実際に進めていきます。次のサイトにアクセスします。
ダウンロードwebサイト:https://www.archlinux.jp/download/
画面を下にスクロールして赤枠内をクリック
赤枠内をクリック
すると、ダウンロードが開始されます。次の画像は、MicrosoftEdgeの画像になりますが、GoogleChromeも似た表示になります。多少時間がかかるので、待ちましょう。
ダウンロードが完了している場合は次の箇所にデータがあると思いますので、確認してみましょう!
PC自体の検索窓に「エクスプローラー」と入力し、エクスプローラーをクリック。
するとこのような表示が現れると思いますので、ダウンロードをクリックします。
すると次の画像のようにデータがあるのが分かると思いますので、確認ができたら、バッテンで画面を閉じてしまいます。ここではデータに触らないでOK!
次に、インストールしていきます。
次のVMwareのアイコンをクリックし、VMwareを立ち上げます。
立ち上がると、次のような画面になるので、赤枠内の新規仮想マシンの作成をクリックします。(Red Hut~は気になさらずです。)
すると、次の画像のとおり表示されるので、順番に気を付けて設定していきます。
元のウィザード画面に戻るので、次へをクリックします。
osをしっかり選択していきます。
バージョンの欄をクリックしたら次の画面になるので、「その他のLinux5.xカーネル64ビット」を選択します。
次のとおり、元のウィザード画面に戻るので、次へをクリックします。
仮想マシン名を決めていきます。私の場合を表示していますので、このままのネーミングをしても良いですが、鬼滅の刃が好きなんだろうなと思われてしまうのでお勧めしません(笑)Sun Breathing日の呼吸。。。めっちゃ強い呼吸ですね(笑)
次に、ディスク容量を決めます。アプリデプロイや追加のソフトウェアをインストールする予定があれば、余裕をもって設定することをお勧めいたします。今回の場合コマンドの練習しかしないので、デフォルトの8GBでも構わないのですが、多少の余裕を持たせて10GBで設定することにしました。
ここでディスクを複数に分割するか否か聞かれていますが、基本的には「単一ファイルとして格納」を選択することで問題ないと思料します。以下参考サイトを貼っておきます。
https://pepe-log.com/vmware-vmdk-1/
それではインストールの準備を完了させるのですが、少しだけカスタマイズします。
蛇足:この画像にあるハードディスクとは、仮想マシンに割り当てるディスク領域。arch Linuxさんは、10GB以内で仕事してね。ということ。メモリは、素早く動作するためにデータをあらかじめ取っておく容量になるので、この数値が少ないと反応の悪いPCが出来上がるということになるため、多少容量を向上させるカスタマイズを行う。本記事の内容である場合、メモリを向上させる必要があるかと言われれば、多少の余裕が欲しいという感じですかね!反応が遅すぎるosでは学習に支障が出る!たぶん!慣習的に向上させる部分も正直あるのですかね?そんな気がします。
続けます。
つまみを操作し、2GBに合わせます。丁度2GBにはならないのですねー。そして閉じるをクリックすると、元の画面に戻ります。
設定内容を確認し、問題なければ完了をクリックします。
自動的に次の画面になるので、再生したい仮想マシン(今回ではarch Linux)をクリックして選択し、仮想マシンの再生をクリックします。
仮想マシンを再生するとかっこいい画面に自動的に遷移していきます(笑)
ここから少し緊張感が出てきますが、何も問題ありません。現状としてはまだインストールは行われていない状態で、パーティションの状態やハードディスクの状態をコマンドを叩いて確認します。
まず、vmwareの画面の枠内を一度クリックし、コマンドが入力できる状態にします。(これをしないと、vmware内に文字が打ち込めません。)
そしてコマンドを入力します。
lsblk
☆心が折れるポイントですねーーーーー(p_-)
一回関連する知識を整理し、出力結果を紐解きます。
Linuxのディレクトリ(windowsでいうフォルダ)の構成とパーティションについて、さらっと理解します。
Linuxのディレクトリ構成の参考動画:https://youtu.be/bzqrlef15wI
パーティションとディレクトリ構成:https://eng-entrance.com/linux-partition
要するに、専門用語に慣れる必要があるため、一度どういった言葉があって、出てきた言葉が意味するものを少しずつ理解する必要があるということ。
CCNAの学習でもそうでした。まずその時理解してみる。そして何回も見ることで長期記憶に定着する感覚ですね!現状lsblkコマンドで出力された文言を翻訳できない。。。
私なりに簡単にまとめたものは次のとおりです。
以下lsblkコマンドでの出力結果について蛇足:
「loop0」loop0 デバイスに ISO データを関連付けて、指定したディレクトリにマウントするもの。
「sda」システム全体の機能に関するデータが格納された最初のハードディスク(2番目はsdb)。WindowsでいうCドライブやDドライブのこと。
「sr0」CD,DVDドライブというデバイス名であって、デバイスを管理するドライバのメジャー番号が11で、ドライバが管理するデバイスを0と識別していますよー。
ここで読み取らなければならないのは、【作成したハードディスクがあること。】【マウントされていない。】【パーティションで分割されていない。】ということ。
なのでこれから、パーティションで分割し、ドライブをマウントしていきます。
なんとなくイメージつきますでしょうか?
パーティションの管理を行うツール「cfdisk」を使用してsdaというハードのパーティションの表示、編集を行います。次のコマンドをそのまま入力し、Enterを押下します。
cfdisk /dev/sda
※cfdiskの後は半角スペースがあります。
このコマンドを実行すると、次の画面になり「gpt」を選択します。
これは、cfツールを使用してdev/sdに適用する場合これを選択するということ。
次はこのような広い空間にちょこんと入力画面が表示されます。
①矢印ボタンで[NEW]を選択し、Enterを押下します。
②デフォルトではディスク容量が次の様に表示されています。
③これをバックスペースで消して、「1M」と入力し、Enterを押下します。
④すると次の画面になります。
⑤ここで矢印ボタンで「Type」を選択し、Enterを押下すると次の画像の画面に遷移します。
⑥「BIOS boot」を矢印ボタンで選択してEnterを押下します。
⑦するとこの画面に戻ります。お帰りです!
蛇足:
BIOSとは、ハードを管理するもので、osより先に起動する母(マザーボード)なる存在
bootとは、osを起動するプロセスで、どのドライブから起動するか選択したりできるもの。
⑧次にスワップスペース(メモリ不足の際に活躍する仮想メモリ)を作成します。
「free space」を矢印ボタンで選択し、「NEW」を選択してEnterを押下します。
⑨最初は次のように表示されます。
⑩今表示されているものをバックスペースで消して、「4G」(メモリとして設定した数値の2倍の数値)と入力してEnterを押下します。
⑪このような表示なります。徐々にパーティションができてきましたね!
⑫先程と同様、「Type」を矢印ボタンで選択してEnterを押下します。
⑬次に「Linux swap」を矢印ボタンで選択して、Enterを押下します。
⑭残りのディスク容量が表示されている項目を矢印ボタンで選択し、「NEW」を選択、Enterを押下します。私の場合はディスク容量10GBで設定し、4GBをBIOSなどに使ったので、残る6GBが表示されていますね!
⑮このままEnterを押下します。
⑯お帰りなさい(笑)
⑰ここで設定を記憶させるために、矢印ボタンで「Write」を選択してEnterを押下します。
⑱画像のように「yes」と入力して、Enterを押下して保存します。
⑲お帰りなさいw
⑳「quit」を選択し、Enterを押下して設定画面を閉じます。
改めてパーティションを確認していきます。
lsblk
しっかりパーティションができていることがわかりますね!しかし、diskがマウントされていません。後ほどマウントします。
続いて、作ったパーティションを使える状態にするために、初期化(からっぽ)にして、このパーティションにアクセスできるように設定します。なお、BIOSのために作成したパーティションを除きます。
フォーマットを行います。次のコマンドを入力し、Enterを押下します。
mkfs.ext4 /dev/sda3
ファイルシステム(mkfs)を作成して、拡張ファイルシステムのバージョン4(ext4)を、dev/sda3に割り当てるという内容になります。
次に、スワップ領域(メモリ不足の際に活躍する仮想メモリでしたね!)をフォーマットします。※これだけではまだ使える状態ではない。
mkswap /dev/sda2
次にスワップを有効にします。これでスワップが有効になる。
swapon -a
画面は特に変化ありません。不安になりますがw
やっと、ユーザーが使用する領域をマウントしていきます。
cd /mnt
移動した先でユーザーが使用する領域6GBのsda3をマウントしていきます。
mount /dev/sda3 /mnt
マウントできているか確認していきます。1つ上の階層に移動します。次のコマンドを入力して、Enterを押下します。
cd ..
現在地を確認します。次のコマンドを入力し、Enterを押下します。
pwd
先程マウントしたディレクトリに入ります。次のコマンドを入力し、Enterを押下します。
cd mnt
ここからマウントできているか確認を行い申し上げる緊張の時ですw
ディレクトリなどの存在を一覧で確認します!
ls
「lost+found」というディレクトリができていればOK!!
システムがクラッシュしたものが格納されるディレクトリがlost+foundという認識もあるようですが、正常に回復して、正常にシステムが起動できていると解釈する時もあるとのこと。
次にosファイルを全てこのディレクトリにコピーする作業(インストール)を行います。
pacstrap /mnt base linux linux-firmware nano grub dhcpcd
最後は「dhcpcd」には気を付けて入力しましょう。
これでArchLinuxの基本的なシステムがインストールされます。
次のようなスクリプトが流れて、2~3分で完了します。
OSの設定
流れ:
・マウントのための情報収集
・システム起動時に自動的なマウントを行う設定を行う。
これによってシステムが正しく起動するためのマウント情報が保存される大事な工程。
以下のコマンドを実行し、genfstabツールによってマウントポイントと関連するファイルシステムの情報を取得します。
つまりマウントするための必要な情報を取得するということ。
genfstab /mnt
半角スペースがありますので気を付けましょう。
マウントされている場所のパス(どこにマウントされているか。)、ファイルシステムのタイプ(ext4)rwは読み書きができるファイルであるということやrelatimeといったファイルへのアクセス時刻を記録するオプションが記載からわかります。
次に、取得したマウント情報などをetc(エトセトラ)ディレクトリのfstabというファイルに記載してくれるコマンドを実行します。
genfstab /mnt >> /mnt/etc/fstab
特に画面の変化はありません。スペースの感覚は掴めたでしょうか??
OSを起動する前の設定を事前に行うために仮想rootディレクトリを作成します。
つまりインストール工程の最中ではbootの設定はできないので、仮想環境を作ることでbootの設定を事前に行うということ。
arch-chroot /mnt
次にrootのパスワードを設定していきます。
passwd
このコマンドを入力し、Enterを押下した後、任意のパスワードを入力します。入力中はパスワードが画面に表示されない設定となっているので、知っておきましょう!
ブートローダー(GRUB)をインストールします。
今回はOS起動時に動作してほしいので、ハードディスクにインストールします。「sda」であることに注意しましょう。
grub-install /dev/sda
これは、OS起動時においてのメモリ設定や、複数OSがインストールされていた場合の起動するOSを選択設定などを行うGRUBというブートローダー。
つまり、OS起動時に必要な設定を適用してくれる機能
grubの設定ファイルを作成していきます。
grub-mkconfig -o /boot/grub/grub.cfg
CLIセッションを終了します。
exit
各種設定を行ったので、再起動をかけます。
reboot
次の画面で「root」と入力し、windowsでいう管理者権限でログインします。
パスワードは先程設定した任意のパスワードになります。
疎通確認の儀
さて、やって参りました。恒例の疎通確認の儀式です。
用意はよろしいでしょうか。
嫌な結果になっても、、私を恨まないでください(笑)
冗談です。困ったことがあればお申しつけください。
では、ICMPを利用したプログラム、「ping」という恐ろしい疎通確認手段。(正当な通信確認です。)
次のコマンドを入力し、Enterを押下します。
ping -c 2 archlinux.org
おわっ、、、、ていません。ひとまず名前解決をしようとして一時的に失敗したようですね。
先に次のコマンドを実行すべきだったのかな。
dhcp(通信するための情報を得るもの。)サービスの開始を行うコマンド
systemctl start dhcpcd
画面の変化はありません。
この後、再びpingを飛ばすと、次の画像のとおり疎通できました!!!
システムが起動した際に自動的にdhcpcdが有効化される設定を行う。
systemctl enable dhcpcd
パッケージマネージャーを設定する。
蛇足:
Linuxは色々な系統があり、それぞれ特徴があって、それぞれに設定を行うコマンド(固く言うとパッケージ管理ツール)があり、「システムのパッケージリストを更新したい。」と思った時コマンドを例に提示してみますね。
例1:Red Hut系(お仕事で使うLinuxというイメージでOK)
sudo yum update
例2:Debian系(初心者の味方、初心者のサーバー構築に向いている。)
sudo apt update
例3:Arch系(ここの説明は後で行います。)
sudo pacman -Sy
このようにLinuxの種類によってコマンドが変わってくるのです。が、基本の考え方は同じと考えますので、今回の設定を進めちゃいましょう!
ちなみに、今回設定しているLinuxは当然、Arch系になりますので、認識しておきましょう。
それでは、パッケージマネージャーを設定していきます。
リマインドしますが、パケージ管理というとなんのことやねんwとなりますが「コマンドを打つ時に必須のもの」と理解して進めましょう。
Arch系Linuxでは、「パックマン(pacman)」がそれに当たるのです。パックマン(パッケージマネージャー)。。。センスしかありませんね(。・∀・)ノ゙♪
以下、パッケージマネージャーを設定するコマンド
nano /etc/pacman.conf
nanoという編集するツールを使って設定するでーという意味です。
次に、矢印ボタンで下にスクロールし、「multilib」の「#」にカーソルを当てます。「#」にカーソルを当てて、Deleteボタンを押下して削除することで、64ビットのパッケージで、32ビットのパッケージをインストールできる設定にします。
この様に編集できたらOK
次にキーボードの「Ctrl」ボタンを押下しながら、「x」エックスボタンを押下して次の表示が現れます。
そして、設定を保存するために、「y」ボタンを押下します。
するとこの表示が現れます。
ここで、Enterを押下します。
パックマン(pacman)を同期します。
先程少し触れたコマンドですね!
今既にroot権限なので、「sudo」は無しで、このまま実行します。
つまり、sudoは管理者権限で実行するコマンドになります。
「y」が1個か2個の違いは、初期設定だけ、2個で設定すると認識しましょう。2個は強制的に設定を再インストールするようです。
通常は1個、初期設定は2個ですねー。
pacman -Syy
SSHサーバーを設定し、SSH接続を受け付けることができる設定を行う。
OpenSSHパッケージをインストールします。SSH接続とは暗号化通信によって安全に通信するもの。です!伝わりますか?
例えばインターネットを介して大事な会社のデータを送信しないといけない!となった場合に、パスをかけて。。。などセキュリティの考え方や、対策は色々とあるかとは思います。SSH接続であると途中で改ざんされた場合の通信中断や、パスなどを通信元と相手方で交換するなどによって安全に通信することができるのです。
ということで設定を続けます。
pacman -S openssh
このような画面になり、「y」と入力して、Enterを押下します。
このようにインストールされます。
インストールされたので、サーバー側から見たSSH接続設定を開始します。
ユーザーからはSSHと言いますが、サーバーから見るとSSHD(デーモン)と言いますね。
systemctl start sshd
このコマンドで画面の変化はありません。
次のコマンドを実行します。
systemctl enable sshd
これはシステム起動時に有効化してねという設定です。
このような表示になります。
サーバーをテストするためユーザーを作成します。
今後ユーザーとしてコマンド練習する場にもなりますね。
useradd -m 任意のユーザー名(お好きに決めちゃってください。)
passwd 任意のパスワード(ここもお好きに。)
3回聞かれるので、3回同じパスワードを入力して、Enterを押下しましょう。
SSH接続、つまり疎通確認2回目の儀
もう恐れるものはなにもありません。
そう、疎通確認を行うのです。
ひたむきに入力や説明を行ったことを思いだすのです。
必ずや接続を達成するんや!
おー
ということで次のコマンドw
ssh keiji@localhost
※₁keijiの部分は先程任意で設定したユーザー名になります。
※₂私の端末だからなのか。。「@」は「Shift」を押下しながら「2」を押下します。
もうビビッていません。疎通確認を行うのです。
上記のコマンドを実行すると次の様に接続しますか?と出ますので、「yes」と入力し、Enterを押下します。
すると、私の場合keiji(任意のユーザー名)のパスワードを求められるので、パスワードを入力して、Enterを押下すると。。。
ログインできたー。
ちなみに、ログアウトする場合は、「exit」でログアウトできます。
さいごに
以下Microsoft Bingさんが答えてくれた内容ですが、「Arch Linuxは、カスタマイズ性が高く、自分好みに合わせて構成できます。ただし、初心者には少し難しいかもしれません。~中略~Arch Linuxを使用する場合は、Linuxについて基本的な知識が必要です。Linuxに慣れ親しんでいる人にとっては、非常に魅力的なオプションです。」・・・つまりムズイことをやっていたのです。
良くできました。🙌
今インプットすることが多いことや、次アウトプットしたいことが結構難解だと認識しているので、少し更新が遅くなるけど、継続します。
では。