Linux あれこれ

Linux 関連(一部 Windows11 )の備忘録です。

「VirtualBox 7.0.22」の「Ubuntu Cinnamon 24.04 LTS」にて、「vagrant ssh」が使えるように設定〈H172-2〉

登録日: 2024-11-03 更新日: 2024-11-11

前回は、 「Xubuntu 24.04 LTS」の「VirtualBox 7.0.22」に、ゲストOS(仮想マシン)として「Ubuntu Cinnamon 24.04 LTS」をインストールしました:

-

その「仮想マシン」の作成時に(vagrant の学習ができるように、)ユーザとパスワードを「vagrant」にしました。

vagrant の利点である「Guest Additions」の自動インストールを行なうには、(内部通信でも使われる)「vagrant ssh」で接続できることが必要なので、その設定を追加後、「Box」を作成。

その「Box」から「仮想マシン」がうまく作成されるか、試してみました。

-

vagrant の総復習になります。

-

その備忘録です。

-

-

使用したPC は、新しく購入した ミニPC「MINISFORUM NAB5」です。
プロセッサは「Core i5-12450H」で、メモリ 16GB、SSD 512GB です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック
Android スマホであれば「ホーム」ボタン隣の「<」をタップ

-

-


目次

-

前回の作業:

「VirtualBox 7.0.22」に、「Ubuntu Cinnamon 24.04 LTS」をインストール〈H172-1〉

-

今回の作業:

1. 「仮想マシン」の「設定」を見直し:

2a. 「Guest Additions」をインストールして使う場合、「設定」を見直し:

2b. 「Guest Additions」をインストールせずに使う場合、「設定」を見直し:

 →こちらは今回だと、vagrant で「仮想マシン」を作成後、
  「Guest Additions」を削除して運用する場合になります

3.  vagrant での「sudo」の設定:

4.  vagrant での「ssh 接続」の設定:

5.  設定した「仮想マシン」から、「Vagrant」の「Box」を作成:

6. 「作業フォルダ」の作成:

7.  最小限の設定の「VagrantFile」で、「仮想マシン」を作成:

8. 「仮想マシン」を再立ち上げ:

9. 「日本語入力」の設定:

10.  気づいたこと:

11.  参考:「ssh 接続」出来なくなり、対応をミスりました:

-

「まとめ へ」

「目次詳細 へ」

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -

Xubuntu 24.04.1 LTS を立ち上げ:

-

(1). デスクトップ画面:

-

(2). 「VirtualBox 7.0.22」を起動:

→今までと見た目は変わりません:

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

(3). 仮想マシンの「Ubuntu Cinnamon 24.04.1 LTS」を起動:

-

ログイン画面:

-

デスクトップ画面:

→ホストOS の「Xubuntu 24.04.1 LTS」と、ゲストOS の「Ubuntu Cinnamon 24.04,1 LTS」のパネルを見比べてみて下さい:

アイテムの並びがほとんど同じです。この並びが使いやすいからです。

-

ただし、「仮想マシン」の画面をスクロールバー付きで使う(高解像度に設定している)場合は、メニューボタンが隠れないように、画面上部にパネルを置いた方が便利です。

もしくは、メニューを使わない設定、例えば、よく使うアプリはショートカットキーとか、右クリックメニューで起動できるようにしておくと良いです。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - --

Vagrant」 (ベイグラント) について:

-

公式サイト:

Vagrant by HashiCorp

-

仮想マシン」の管理や操作をコマンドで使うための「フロントエンド」のソフトウェアです:

-

→詳細は、以前に投稿した「こちら 」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ---

Ubuntu Cinnamon」について:

-

Ubuntu の公式フレーバー(性格の違う兄弟)です:

Ubuntu ベースの、Linux Mint 発の「Cinnamon」(シナモン)デスクトップ環境です。

GTK を使う GNOME 3 からフォークしたデスクトップ環境で、GNOME とは異なる GUI を目指しています。

-

Ubuntu Cinnamon 24.04 LTS」の標準アプリ:

-

→どのアプリも高機能で使いやすいです:

-

-


現在のOS のバージョンを表示:

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

ホストOS : 「Xubuntu 24.04.1 LTS」

2024-11-03 現在

カーネル:

$ uname -r
6.8.0-48-generic

→安定志向なので、更新はあまりありません:

-

リリース:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS"

→LTS 版の更新(ポイントリリース)は、ほぼ 6ヶ月ごとです:

-

x11」と「Wayland」のどちらで動作しているか確認:
$ echo $XDG_SESSION_TYPE
x11

→「Wayland」ではなく、「x11」で動作しています。

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

ゲストOS : 「Ubuntu Cinnamon 24.04.1 LTS」

2024-11-03 現在

カーネル:

$ uname -r
6.8.0-48-generic

→安定志向なので、更新はあまりありません:

-

リリース:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS"

→LTS 版の更新(ポイントリリース)は、ほぼ 6ヶ月ごとです:

-

x11」と「Wayland」のどちらで動作しているか確認:

$ echo $XDG_SESSION_TYPE
x11

→「Wayland」ではなく、「x11」で動作しています:

-

ちなみに、ログイン画面のアイコンから、「Wayland」セッションに切り替えできます:

→動作は未確認:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----

参考: 「Box」の元にする「仮想マシン」を作成する時に、公開するなら留意しておくこと:

-

今回は「個人使用」が目的で公開しないので、
「日本語」の環境で「日本語キーボート」にしたけど、

-

インストールする環境は、基本「英語」の環境:

-

言語は「英語」指定でインストール:

言語を「日本語」にすると、「ホーム」フォルダが日本語になることと、
デフォルトのコンソールでは日本語が文字化けすることがあり、設定作業が面倒です:

-

キーボードは「US キーボード」がベター:

作業が面倒になるので、「日本語キーボート」指定でインストールしました:

Box 公開で、「日本語キーボート」のことを「Box」の名前に含めるか、コメントに書けばいいかも

-

タイムゾーンも「UTC」かな:

-

「日本語」の環境にした場合の問題は、イメージサイズが大きくなること:

アップロードできるサイズは、(お金が高くなる、無料でなくなる)制限があったりします:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - -----

参考:「ssh 接続」の設定を行わずに「仮想マシン」を立ち上げた場合の例:

-

ssh 接続」の設定を行なわないで、「vagrant up」すると、

仮想マシン」は立ち上がるけど、問題が出ます:

-

下記のような表示になり、(タイムアウトを設定していないと)「端末」画面が開放されません:

また、(「ssh 接続」による内部通信ができないので)

プラグイン」の機能による「Guest Additions」の自動インストールが働きません:

-

上記は「使い方」しだいなので、気にする必要はありません:

プロンプトが返ってこない「端末」は閉じれば良いだけです。
楽をするために、「仮想マシン」の立ち上げや電源オフに「vagrant」を使うのはアリです:

それだけでなく、Box を作成しておくことで、問題が出ても、すぐに「仮想マシン」の作り直しができます:

-


ssh 接続」の設定を行わずに「仮想マシン」を立ち上げた場合:

$ cd ~/ダウンロード/vm/ubuntu-cn/
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'UbuntuCN24-04'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: ubuntu-cn_default_1729599548135_6404
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection reset. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Connection reset. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Connection reset. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
: 

↓ 「ssh 接続」が出来ないので、リトライが繰り返されます:

-

(設定値のタイムアウトで)赤色の警告表示:

Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.

If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.

If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ 

今回は、Vagrantfile で「ssh 接続」のタイムアウト値を短くしたので、早めに端末が開放されました:

ただし、短くしなくても、"「仮想マシン」が立ち上がったら「端末」を一度閉じる" ことにしても良いです:

-

→問題なのは、「ssh 接続」の設定をしていないと、その後の
「GuestAdditions」のバージョンのチェックに入らない(自動インストールがされない)ことです:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -

1. 前回の作業の続き:

-

前回の作業:

「VirtualBox 7.0.22」に、「Ubuntu Cinnamon 24.04 LTS」をインストール〈H172-1〉

-

↓ (その続き):

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- --

2. 「VirtualBox」マネージャを起動して、「仮想マシン」を起動:

-

1). 「ログイン」画面:

-


2). 「デスクトップ」画面が表示:

-


3). 端末を起動して、システム更新:

vagrant@vagrant:~$ sudo apt update
:
[sudo] vagrant のパスワード: 
ヒット:1 http://jp.archive.ubuntu.com/ubuntu noble InRelease
ヒット:2 http://security.ubuntu.com/ubuntu noble-security InRelease
ヒット:3 http://jp.archive.ubuntu.com/ubuntu noble-updates InRelease
ヒット:4 http://jp.archive.ubuntu.com/ubuntu noble-backports InRelease
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了        
パッケージはすべて最新です。

-

vagrant@vagrant:~$ sudo apt upgrade
:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
アップグレードパッケージを検出しています... 完了
Get more security updates through Ubuntu Pro with 'esm-apps' enabled:
  libcjson1 libpostproc57 libavcodec60 libavutil58 libswscale7 libswresample4
  libavformat60 libavfilter9
Learn more about Ubuntu Pro at https://ubuntu.com/pro
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

-


4). システム更新した場合は、ゲストOS を再起動:

vagrant@vagrant:~$ reboot

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ---

3. 現在の状態を確認:

-

今のところ、Vagrant で管理された「仮想マシン」はありません:

-

1). Vagrant で管理された「仮想マシン」の確認:

$ vagrant global-status
:
id       name    provider   state    directory                           
-------------------------------------------------------------------------

なし

-


2). 「Box」の確認:

$ vagrant box list
:
There are no installed boxes! Use `vagrant box add` to add some.

和訳:

インストールされているボックスがありません。 `vagrant box add` を使用して追加します。

-


3). 「作業フォルダ」の確認:

$ ls -1 ~/ダウンロード/vm/
$

-


4). 個人的に作成した「Box」イメージを置いておく場所を確認:

確認:

$ ls -1 ~/ダウンロード/vm/box-share
:
そのようなファイルやディレクトリはありません

-


5). VirtualBox の「仮想マシン」の実際のフォルダの確認:

$ ls -1Ap ~/'VirtualBox VMs'
:
UbuntuCN24-04/

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----

4-1. 「vagrant」ユーザにて、現在の sudo の設定を確認:

-

参考:

Vagrant 実践編4: 「EndeavourOS」に ssh 接続等の設定を追加して「Box」を再作成〈H170-5〉

-


1). 「VirtualBox」マネージャを起動して、「仮想マシン」を起動:

-


2). ログイン画面にて:

ユーザ:vagrant

パスワード: vagrant

-


3). 「端末」を起動:

-


4). 「vagrant」ユーザが参加しているグループを確認:

vagrant」ユーザの「ホーム」フォルダ:

vagrant@vagrant:~$ pwd
/home/vagrant

-

参加しているグループを確認:

vagrant@vagrant:~$ id
:
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant),  
  4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),100(users),115(lpadmin)

→含まれていたら削除した方が良い、「sys」、「wheel」、「rfkill」のグループは、 「vagrant」ユーザにありませんでした:

-

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

参考: 「wheel」グループについて:

「wheel」グループに属すると、コマンドに関しては「root」と同等の権限を持ちます:

-

参考: 「sudo」グループと「wheel」グループの違い:

ユーザに権限を与える仕組みが異なります:

  • 「wheel」グループは、管理者権限を付与する特別なグループで、ユーザ管理やその他の管理を行えます

  • 「sudo」グループは、root ユーザの資格情報を使わずに、root ユーザの権限に似た権限をユーザに提供するグループです

-

参考: 「rfkill」グループについて:

多くのコンピュータには、Wi-FiBluetooth、及び 3G のデバイスを含む電波発信器を内蔵しています。 これらのデバイスは電力を消費するので、 使用されない時は無駄です。

rfkill は、システム上の rfkill 対応のデバイスをクエリ、変更できるツール(rfkill パッケージ)で、 サポートしたカーネルドライバーは、この API を使用して、デバイスを有効にしたり無効にできます。

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

参考: もし、それらの「削除した方が良いグループ」が含まれていた場合:

そのグループから「vagrant」ユーザを削除します:

vagrant@vagrant:~$ sudo gpasswd -d vagrant sys
vagrant@vagrant:~$ sudo gpasswd -d vagrant wheel
vagrant@vagrant:~$ sudo gpasswd -d vagrant rfkill

→もし、ひとつでも削除した場合は、完全に反映させるためには、再起動が必要です:

-


5). 「vagrant」ユーザで、sudo が使えるか確認:

-

(1). sudo を使ってみる:
vagrant@vagrant:~$ sudo ls
:
[sudo] vagrant のパスワード: 
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  snap

→「sudo」グループに含まれているので、sudo が使えます:

-

(2). 「/etc/sudoers*」の確認:
[vagrant@vagrant ~]$ sudo ls /etc/sudoers*
/etc/sudoers
/etc/sudoers.d:
README

-

(3). sudo の機能を設定する「/etc/sudoers」ファイルの内容を確認:
vagrant@vagrant:~$ sudo cat /etc/sudoers
:
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults    env_reset
Defaults    mail_badpass
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# This fixes CVE-2005-4890 and possibly breaks some versions of kdesu
# (#1011624, https://bugs.kde.org/show_bug.cgi?id=452532)
Defaults    use_pty

# This preserves proxy settings from user environments of root
# equivalent users (group sudo)
#Defaults:%sudo env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy"

# This allows running arbitrary commands, but so does ALL, and it means
# different sudoers have their choice of editor respected.
#Defaults:%sudo env_keep += "EDITOR"

# Completely harmless preservation of a user preference.
#Defaults:%sudo env_keep += "GREP_COLOR"

# While you shouldn't normally run git as root, you need to with etckeeper
#Defaults:%sudo env_keep += "GIT_AUTHOR_* GIT_COMMITTER_*"

# Per-user preferences; root won't have sensible values for them.
#Defaults:%sudo env_keep += "EMAIL DEBEMAIL DEBFULLNAME"

# "sudo scp" or "sudo rsync" should be able to use your SSH agent.
#Defaults:%sudo env_keep += "SSH_AGENT_PID SSH_AUTH_SOCK"

# Ditto for GPG agent
#Defaults:%sudo env_keep += "GPG_AGENT_INFO"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "@include" directives:

@includedir /etc/sudoers.d       ←「注目」

→「注目」: 設定ファイルの最後に「外部ファイル」の定義を取り込むための「フォルダ」の定義がありました。

-

(4). その「フォルダ」を確認:
vagrant@vagrant:~$ ls /etc/sudoers.d
README

→置かれているのは README ファイルのみ:

なので、このディレクトリは無視できます。

-

(5). 念の為、その README ファイルの内容を確認:
vagrant@vagrant:~$ sudo cat /etc/sudoers.d/README
#
# The default /etc/sudoers file created on installation of the
# sudo  package now includes the directive:
# 
#   @includedir /etc/sudoers.d
# 
# This will cause sudo to read and parse any files in the /etc/sudoers.d 
# directory that do not end in '~' or contain a '.' character, if it
# exists. It is not an error if the directory does not exist.
# 
# Note also, that because sudoers contents can vary widely, no attempt is 
# made to add this directive to existing sudoers files on upgrade.  Feel free
# to add the above directive to the end of your /etc/sudoers file to enable 
# this functionality for existing installations if you wish!
# Sudo versions older than 1.9.1 will only support the old syntax
# #includedir. That means that the sudo versions in Debian bullseye (11)
# and later will happily accept both @includedir and #includedir.
#
# Finally, please note that using the visudo command is the recommended way
# to update sudoers content, since it protects against many failure modes.
# See the man page for visudo and sudoers for more information.
#

→すべてコメント行でした:

和訳:

sudo パッケージのインストール時に作成されるデフォルトの /etc/sudoers ファイルには、
次の命令文が含まれるようになりました:

@includeir /etc/sudoers.d

これにより、sudo は /etc/sudoers.d ディレクトリ内にて、
「~」で終わらない、または「.」の文字を含むときは読み取って、解析します。

ディレクトリが存在しない場合でもエラーにはなりません。

→個人的な理解:

/etc/sudoers.d ディレクトリに置かれたファイルは基本有効だけど、

 エディタで自動生成される、お尻に「~」の付いたバックアップファイルは無視で、

 分類分けの「任意の名前.d」ディレクトリに置かれたファイルも有効、ということかな。

  /etc/sudoers.d ディレクトリは無くても OK

:
sudoers の内容は大きく異なる可能性があるため、アップグレード時に
この命令文を既存の sudoers ファイルに追加する試みは行われないことにも注意。

必要に応じて、上記の命令文を /etc/sudoers ファイルの末尾に追加して、
既存のインストールでこの機能を有効にしてください。

1.9.1 より古い Sudo バージョンは、古い構文 includeir のみをサポートします。
つまり、Debian bullseye (11) 以降の sudo バージョンでは、
@includeir と Includedir の両方を問題なく受け入れることができます。

最後に、visudo コマンドの使用は、多くの障害モードから保護されるため、
sudoers コンテンツを更新する場合に推奨される方法であることに注意。

詳細については、visudo および sudoers のマニュアル ページを参照。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- -----

4-2. 「vagrant」ユーザにて、vagrant で使われている? sudo の設定に変更:

-

「/etc/sudoers」ファイルの最後に、後述の「数行の設定」を追加しました:

-

「/etc/sudoers」ファイルの最終行に追記、つまり、「@includeir /etc/sudoers.d」の定義行よりも後に追記することで、

→外部ファイルの定義があって、それを取り込んだ場合でも、上書きされるので、「追記した設定」が最優先になります:

-


1). 設定前の sudo の動作の確認:

vagrant@vagrant:~$ sudo ls

[sudo] vagrant のパスワード: 
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  snap

→sudo は有効ですが、パスワードの入力が必要です:

-


2). 事前に、下記の空行も含めた、すべての行を範囲指定後、右クリック→「コピー」:

## Allow root to run any commands anywhere
root    ALL=(ALL)   ALL
Defaults:vagrant    !requiretty
vagrant ALL=(ALL)   NOPASSWD: ALL

-

説明:

下から 2行目:

 全ユーザではなく、特定の「vagrant」ユーザだけに「tty なしでの sudo」を認めます:
 →sudo エラーの回避
 
下から 1行目:

 「vagrant」ユーザが、sudo をパスワードなしで実行できるようにします:

-


3). 「/etc/sudoers」を修正:

vagrant@vagrant:~$ sudo visudo

→ 「sudo の設定」を安全に書き換えできるコマンドです:

CLI エディタが起動して(指定がなければ)「/etc/sudoers」ファイルが開かれ、すぐに修正できます。
入力ミスしても、ファイルの保存時に構文チェックして、問題がない場合に限って元ファイルと置き換えます。 なので、システムに致命的なダメージを与えるリスクが減らせます。

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

-

参考: 「visudo」で起動される CLI エディタについて:

-

UbuntuFedora の場合、「nano」が起動します:

エディタは、「update-alternatives」コマンドでリンクを切り替えることで変更できますが、

-

CLI コマンドで呼び出す「エディタ」を、ユーザごとに指定したいときは「環境変数」が便利です:

(「visudo」で使うエディタ、「git commit」のコミット入力で使うエディタ などの変更)

-

安全なやり方は、2つの「環境変数」に、同じエディタを指定します:

-

「vi」を使いたい時:
$ export VISUAL=/usr/bin/vim
$ export EDITOR=/usr/bin/vim

→vi には派生があるので、vim とは限りません

-

「nano」を使いたい時:
$ export VISUAL=/usr/bin/nano
$ export EDITOR=/usr/bin/nano

-


4-a). 「visudo」で、「nano」エディタが起動された場合の操作:

事前に下記を Ctrl+V か、右クリックで「コピー」:

## Allow root to run any commands anywhere
root    ALL=(ALL)   ALL
Defaults:vagrant    !requiretty
vagrant ALL=(ALL)   NOPASSWD: ALL

-

「↓」キーでファイルの最後に行きます:

マウスの「中央ボタン」で貼り付けるか、右クリック→「貼り付け」

見やすいように、空行を修正:

-

Ctrl+O で、保存するファイル(今回は、一時的な保存ファイル)が表示されるので、そのまま Enter

Ctrl+X で、終了

-

vagrant@vagrant:~$

→「visudo」にて入力ミスがあると、やり直さないとコマンドプロンプトにに戻れません。

コマンドプロンプトに戻ったということは、構文のミスはなかったということ。

-


4-b). 「visudo」で、「vi」エディタが起動された場合の操作:

事前に下記を Ctrl+V か、右クリックで「コピー」:

## Allow root to run any commands anywhere
root    ALL=(ALL)   ALL
Defaults:vagrant    !requiretty
vagrant ALL=(ALL)   NOPASSWD: ALL

-

「vi」で、クリップボードからテキストを「貼り付け」るときは:

「入力モード」に切り替えてから、「SHIFT + Insert キー」で貼り付けできます:

ただし、慣れておらず、Ctrl+V としてしまうと予期しない動きでハマります。
短い文字列なら「手入力」が無難です:

-

「↓」キーでファイルの最後の行に移動

「End」キーで行末に移動

「Esc」「Esc」「a」

最後の行の行末で、キー入力が可能になるので、2回、改行してから、下記を入力:

## Allow root to run any commands anywhere
root    ALL=(ALL)   ALL
Defaults:vagrant    !requiretty
vagrant ALL=(ALL)   NOPASSWD: ALL

大きなすき間は、半角スペース x 4つ にすると良いです

-

「Esc」「Esc」「:wq」Enter

→書き込み後に、終了しました:

-

vagrant@vagrant:~$

→「visudo」にて入力ミスがあると、やり直さないとコマンドプロンプトに戻れません。

コマンドプロンプトに戻ったということは、構文のミスはなかったということ。

-


5). 「仮想マシン」の再起動:

vagrant@vagrant:~$ reboot

-


6). 「vagrant」ユーザでログイン:

-


7). sudo が使えるかの確認と、sudo の動作の確認:

vagrant@vagrant:~$ sudo ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  snap

パスワードなしで、sudo で表示されました:

→OK

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -

5. 「ssh 接続」できるように設定:

-

仮想マシン」の「vagrant」ユーザで操作:

-


1). 確認:

-

vagrant@vagrant:~$ pwd
/home/vagrant

-

vagrant@vagrant:~$ ls -1Ap | grep ssh
.ssh/

→「~/.ssh」フォルダがありました:

-

vagrant@vagrant:~$ ls -1Ap .ssh/
authorized_keys

→鍵もありました:

vagrant@vagrant:~$ ls -l .ssh/authorized_keys
-rw------- 1 vagrant vagrant 0 10月 24 21:50 .ssh/authorized_keys

→鍵もありましたが、サイズは 0 で、空です:

-

中身は空です:

vagrant@vagrant:~$ cat .ssh/authorized_keys
vagrant@vagrant:~$ 

「~/.ssh」フォルダのファイル属性を確認:

vagrant@vagrant:~$ ls -lA | grep ssh
drwx------  2 vagrant vagrant  4096 10月 24 21:50 .ssh

→属性の設定は「700」でした:

-


2). 「curl」のインストール:

vagrant@vagrant:~$ sudo apt install curl
:
以下のパッケージが新たにインストールされます:
  curl

-


3). Vagrant 用公開鍵認証キーを取得:

無条件で、上書きします:

なので、上記の「項番 1).」の確認は要りませんでした:

-

vagrant@vagrant:~$ mkdir -p /home/vagrant/.ssh
vagrant@vagrant:~$ chmod 700 /home/vagrant/.ssh
vagrant@vagrant:~$ cd /home/vagrant/.ssh
$ curl -k -L -o authorized_keys 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub'
:
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   409  100   409    0     0    340      0  0:00:01  0:00:01 --:--:--   340
vagrant@vagrant:~/.ssh$ chmod 600 /home/vagrant/.ssh/authorized_keys
vagrant@vagrant:~/.ssh$ chown -R vagrant:vagrant /home/vagrant/.ssh

-


4). 「ホーム」フォルダに移動:

vagrant@vagrant:~/.ssh$ cd
vagrant@vagrant:~$ 

-


5). 確認:

フォルダ:

vagrant@vagrant:~$ ls -lAp /home/vagrant/ | grep ssh
:
drwx------  2 vagrant vagrant  4096 10月 24 21:50 .ssh/

→ファイル属性は「700」で、「vagrant:vagrant」の所有

-

ファイル:

vagrant@vagrant:~$ ls -lAp /home/vagrant/.ssh
:
-rw------- 1 vagrant vagrant 409 10月 28 17:50 authorized_keys

→ファイル属性は「600」で、「vagrant:vagrant」の所有

-

空ではありません:

vagrant@vagrant:~$ cat .ssh/authorized_keys
ssh-rsa AAAAB3Nza…省略…qm8tehUc9c9WhQ== vagrant insecure public key

-


6). ssh 関連のアプリがインストールされているか確認:

vagrant@vagrant:~$ apt search ssh | grep 済 | grep ssh
:
libssh-4/noble,now 0.10.6-2build2 amd64 [インストール済み、自動]
libssh-gcrypt-4/noble,now 0.10.6-2build2 amd64 [インストール済み、自動]
openssh-client/noble-updates,now 1:9.6p1-3ubuntu13.5 amd64 [インストール済み、自動] ←「注目」

→「注目」:「openssh-client」がインストールされています。

-


7). 「openssh-server」の確認:

vagrant@vagrant:~$ apt search server | grep openssh
:
openssh-client-ssh1/noble 1:7.5p1-16 amd64
openssh-server/noble-updates 1:9.6p1-3ubuntu13.5 amd64 ←「注目」
openssh-sftp-server/noble-updates 1:9.6p1-3ubuntu13.5 amd64

-


8).「openssh-server」のインストール:

vagrant@vagrant:~$  sudo apt install openssh-server
:
以下のパッケージが新たにインストールされます:
  ncurses-term openssh-server openssh-sftp-server ssh-import-id
:
Creating config file /etc/ssh/sshd_config with new version
Created symlink /etc/systemd/system/sockets.target.wants/ssh.socket → /usr/lib/s
ystemd/system/ssh.socket.
Created symlink /etc/systemd/system/ssh.service.requires/ssh.socket → /usr/lib/s
ystemd/system/ssh.socket.

-


9). 「仮想マシン」の再起動:

vagrant@vagrant:~$ reboot

-


10). ssh 関連のサービスが起動されているか確認:

vagrant@vagrant:~$ sudo systemctl status sshd
:
Unit sshd.service could not be found.

→「sshd.service」は見つかりません:

vagrant@vagrant:~$ sudo systemctl status ssh
:
○ ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; disabled; preset: enabled)
     Active: inactive (dead)
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)
             man:sshd_config(5)

→「ssh.service」にしたら見つかりました:

サービス名に付く(.service) は省略できます

-


11). ssh サービスの有効化:

vagrant@vagrant:~$ sudo systemctl enable ssh
:
Synchronizing state of ssh.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable ssh
Created symlink /etc/systemd/system/sshd.service → /usr/lib/systemd/system/ssh.service.
Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /usr/lib/systemd/system/ssh.service.

sshd.service」のリンクが張られました:

-

以降は、どちらでもステータスが見れるようになりました:

vagrant@vagrant:~$ sudo systemctl status sshd
:
○ ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
     Active: inactive (dead)
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)
             man:sshd_config(5)

-

vagrant@vagrant:~$ sudo systemctl status ssh
:
○ ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
     Active: inactive (dead)
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)
             man:sshd_config(5)

-

参考: 下記のようにサーバーを起動しても良いですが、再起動するのが楽です:

$ sudo systemctl start sshd

-


12). 「仮想マシン」の再起動:

vagrant@vagrant:~$ reboot

-


13). sshd サービスが起動されたか確認:

vagrant@vagrant:~$ sudo systemctl status sshd
:
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
     Active: active (running) since Mon 2024-10-28 19:07:12 JST; 5min ago
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 1104 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 1124 (sshd)
      Tasks: 1 (limit: 9090)
     Memory: 2.1M (peak: 2.3M)
        CPU: 1.675s
     CGroup: /system.slice/ssh.service
             └─1124 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

10月 28 19:07:10 vagrant systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
10月 28 19:07:12 vagrant sshd[1124]: Server listening on :: port 22.
10月 28 19:07:12 vagrant systemd[1]: Started ssh.service - OpenBSD Secure Shell server.

「q」で表示終了:

-

こちらで確認してもOK:

vagrant@vagrant:~$ sudo systemctl status ssh
:
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
     Active: active (running) since Mon 2024-10-28 19:07:12 JST; 5min ago
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 1104 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 1124 (sshd)
      Tasks: 1 (limit: 9090)
     Memory: 2.1M (peak: 2.3M)
        CPU: 1.675s
     CGroup: /system.slice/ssh.service
             └─1124 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

10月 28 19:07:10 vagrant systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
10月 28 19:07:12 vagrant sshd[1124]: Server listening on :: port 22.
10月 28 19:07:12 vagrant systemd[1]: Started ssh.service - OpenBSD Secure Shell server.

「q」で表示終了:

-

以前とは変わったみたい。
どちらで確認してもOK ですね。変わりません。

ログが表示されるようになれば、動いているということ:

-


14). 「仮想マシン」をシャットダウン:

-

この状態で、「Box」を作成します:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- --

6. 任意:「Guest Additions」削除:

-

ちなみに、どの「VirtualBox」のバージョンで使っても問題がないように、インストールした「Guest Additions」をここで削除しておいても OK

-

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ---

7. 「VirtualBox」の「仮想マシン」から、「Vagrant」の「Box」を作成:

-

参考:

Vagrant 実践編2: 既存の「EndeavourOS」(Openbox) から「Box」を作成〈H170-3〉

-


1). VirtualBox にある、「仮想マシン」の名前(フォルダ名)を確認:

$ ls -1 ~/'VirtualBox VMs'/
UbuntuCN24-04   ←「Vagrant で管理されていません」

-


2). Vagrant にて、「仮想マシン」の名前(フォルダ名)を確認:

$ vagrant global-status
id       name    provider   state    directory                           
-------------------------------------------------------------------------

→まだ、Vagrant で管理されている「仮想マシン」はありません:

-

→この「仮想マシン」の「UbuntuCN24-04」から「Box」を作成します:

-


3). 「.box」ファイルを作成して保存する場所を準備:

$ mkdir -p ~/ダウンロード/vm/box-share/

-


4). 「.box」ファイルを作成:

$ cd ~/ダウンロード/vm/box-share/
$ vagrant package --base UbuntuCN24-04 --output pkg-UbuntuCN24-04.box

→「UbuntuCN24-04」は、「virtualbox」での「仮想マシン」名です。

==> UbuntuCN24-04: Exporting VM...
==> UbuntuCN24-04: Compressing package to: /home/ubn/ダウンロード/vm/box-share/pkg-UbuntuCN24-04.box
ubn@ubnbox:~/ダウンロード/vm/box-share$ 

時間がかかりました:

→プロンプトに戻りました。

-


5). 作成された「.box」ファイルを確認:

$ cd ~/ダウンロード/vm/box-share/
$ ls -lA
:
-rw-rw-r-- 1 ubn ubn 8325624300 10月 28 20:00 pkg-UbuntuCN24-04.box

→作業フォルダに、「pkg-UbuntuCN24-04.box」ファイルが作成されました:

サイズは、「7.75 GB」ほど

-


6). 作成された「.box」ファイルを「Box」の一覧に追加:

$ cd ~/ダウンロード/vm/box-share/
$ vagrant box add --name UbuntuCN24-04 pkg-UbuntuCN24-04.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'UbuntuCN24-04' (v0) for provider: 
    box: Unpacking necessary files from: file:///home/ubn/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89/vm/box-share/pkg-UbuntuCN24-04.box
==> box: Successfully added box 'UbuntuCN24-04' (v0) for ''!
ubn@ubnbox:~/ダウンロード/vm/box-share$ 

→プロンプトに戻りました:

-


7). 「Box」の一覧に追加されたか確認:

$ vagrant box list
UbuntuCN24-04 (virtualbox, 0)          ←(追加)

-


8). 参考: ホームの「Box」の一覧にあるファイルを確認:

$ ls -1A ~/.vagrant.d/boxes/
:
UbuntuCN24-04

-

$ ls -lA ~/.vagrant.d/boxes/UbuntuCN24-04/0/virtualbox/
:
-rw-rw-r-- 1 ubn ubn        505 10月 28 20:07 Vagrantfile
-rw-rw-r-- 1 ubn ubn 8439807488 10月 28 20:07 box-disk001.vmdk
-rwx------ 1 ubn ubn       9348 10月 28 20:07 box.ovf
-rw-rw-r-- 1 ubn ubn         25 10月 28 20:07 metadata.json

→「vagrant_private_key」がありません:

-

参考: ホームにある「Vagrantfile」の内容を確認:
$ cat ~/.vagrant.d/boxes/UbuntuCN24-04/0/virtualbox/Vagrantfile
Vagrant::Config.run do |config|
  # This Vagrantfile is auto-generated by `vagrant package` to contain
  # the MAC address of the box. Custom configuration should be placed in
  # the actual `Vagrantfile` in this box.
  config.vm.base_mac = "080027B370EC"
end

# Load include vagrant file if it exists after the auto-generated
# so it can override any of the settings
include_vagrantfile = File.expand_path("../include/_Vagrantfile", __FILE__)
load include_vagrantfile if File.exist?(include_vagrantfile)

→次々に組み込まれるベースとなる「Vagrantfile」ファイルです:

こちらで、「Mac アドレス」が指定されています:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----

8. 「作業フォルダ」の作成:

-

作業フォルダに移動してコマンドを実行すると、コマンドで「仮想マシン名」や「id」番号を省略できます:

-

作業フォルダ名は分かりやすい名前にしました:

$ mkdir -p ~/ダウンロード/vm/ubuntu-cn/

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- -----

9. 「Vagrantfile」を手動で作成:

-

個人的にオススメする設定:

→「仮想マシン」を作成するときに今までに発生した問題に対処:

ssh 接続」のみで使うには無駄が多いかも。

-


「Vagrantfile」を作成:

すでに「Vagrantfile」を作成していたら、nano であれば、

Ctrl+K を押し放しにすれば、すべて削除できます。

一部修正するより、Ctrl+C 後、マウスの中央ボタンで「すべて貼り付ける」のが楽です。

-

$ cd ~/ダウンロード/vm/ubuntu-cn/
$ nano Vagrantfile

↓ すべて貼付け:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "UbuntuCN24-04"
  #config.vm.box_version = "0"
  config.vm.boot_timeout = 300
  #config.vm.boot_timeout = 60
  # ホストの作業フォルダ内の data フォルダと
  # 仮想マシン内の /vagrant_data フォルダを共有:
  # 指定のフォルダがない場合は、フォルダを作成:
  config.vm.synced_folder "./data", "/vagrant_data", create: true
  # デフォルトの共有フォルダを無効にします:
  config.vm.synced_folder ".", "/vagrant", disabled: true
  config.vm.provider "virtualbox" do |vb|
    # 仮想マシンの起動時に VirtualBox GUI を表示:
    vb.gui = true
    #vb.memory = "2048"
    #vb.memory = "4096"
    vb.memory = "8192"
    #vb.cpus = 2
    vb.cpus = 4
    vb.customize ["modifyvm", :id, "--mouse", "usbtablet"] 
    #vb.customize ["modifyvm", :id, "--graphicscontroller", "vboxsvga"]
    vb.customize ["modifyvm", :id, "--graphicscontroller", "vmsvga"]
    vb.customize ["modifyvm", :id, "--accelerate3d", "on"]
    vb.customize ["modifyvm", :id, "--vram", "128"]
  end
end

説明:

5行目で、使用する「Box」を指定:
6行目で、使用する「Box」のバージョンを指定: ★
7〜8行目で、リトライのタイムアウト値を短く調整: ←(ssh 認証時のループ回避)
9〜12行目で、共有フォルダ「/vagrant_data」を設定: ★
13〜14行目で、デフォルトの共有フォルダ「/vagrant」を無効化: ★
17行目で、GUI 表示を有効に設定:
18〜20行目で、メモリ「8192」MB に変更:
21〜22行目で、プロセッサ「4」個 に変更:
23行目で、ポインティングデバイスを「USBタブレット」に変更: ★
24〜25行目で、ディスプレイを 「vmsvga」に変更:
26行目で、デスクトップ表示に備え「3D」オンに変更: ★
27行目で、ビデオメモリを「128」MB に変更:  ★

-

→Crtl+O で、保存。保存先を確認して、Enter

→Crtl+X で、終了

-

参考:「config.vm.box = "UbuntuCN24-04"」の行を変更すれば、他の「仮想マシン」でも使い回し出来ます:

6行目は、使用する「Box」のバージョンを指定します。最新バージョンにしたいときは、行頭に「#」を付けてコメント行にするか、行を削除します:

-

仮想マシン」をすでに作成していた場合は、修正を反映させるため、後で「vagrant reload」が必要です:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- -

10-1. 「仮想マシン」を(作成して)立ち上げ:

-

1). 現時点で、登録されている「Box」を確認:

$ vagrant box list
UbuntuCN24-04 (virtualbox, 0)

→ひとつのみ

-


2). 現時点で、Vagrant で作成された「仮想マシン」を確認:

$ vagrant global-status
id       name    provider   state    directory                           
-------------------------------------------------------------------------

→「仮想マシン」なし

-


3). Vagrant に、「vagrant-vbguest」プラグインがインストールされているか確認:

$ vagrant plugin list
vagrant-vbguest (0.32.0, global)

-


4). 「仮想マシン」の(初回の作成と)立ち上げ:

仮想マシン」に「Guest Additions」がインストールされて、再起動されるので、いつもよりも時間がかかります:

-

「Vagrantfile」が置かれた「作業フォルダ」に移動して、実行:
$ cd ~/ダウンロード/vm/ubuntu-cn/
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'UbuntuCN24-04'...
Progress: 20%

→初回のみ、時間がかかります:

==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: ubuntu-cn_default_1730114830502_29087
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: 
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default: 
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
[default] GuestAdditions seems to be installed (7.0.22) correctly, but not running.
update-initramfs: Generating /boot/initrd.img-6.8.0-47-generic
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Setting up modules
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel 
modules.  This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel 6.8.0-47-generic.
update-initramfs: Generating /boot/initrd.img-6.8.0-47-generic
Restarting VM to apply changes...
==> default: Attempting graceful shutdown of VM...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant_data => /home/ubn/ダウンロード/vm/ubuntu-cn/data
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ 

→あれれ、「仮想マシン」が「クルクル回転」する画面のまま、立ち上がりません:

以前と同じ現象です:

ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant halt

-


5). ホストOS を再起動:

「端末」以外の画面を閉じてから、

$ reboot

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- --

10-2. 「仮想マシン」を再立ち上げ:

-

1). 「仮想マシン」の立ち上げ:

ubn@ubnbox:~$ cd ~/ダウンロード/vm/ubuntu-cn/
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
[default] GuestAdditions 7.0.22 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant_data => /home/ubn/ダウンロード/vm/ubuntu-cn/data
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ 

→やっぱり、「仮想マシン」が「クルクル回転」の画面のまま、立ち上がりません:

以前と同じ現象です:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ---

11. 「ssh 接続」してみる:

-

1). 「仮想マシン」の確認:

$ vagrant global-status
:
id       name    provider   state   directory                           
------------------------------------------------------------------------
c90f5ee  default virtualbox running /home/ubn/ダウンロード/vm/ubuntu-cn       

-


2). 「仮想マシン」が立ち上がっていることを確認:

$ cd ~/ダウンロード/vm/ubuntu-cn
$ vagrant status
:
Current machine states:

default                   running (virtualbox)

-


3). 「端末」画面から、 「ssh 接続」:

$ cd ~/ダウンロード/vm/ubuntu-cn
$ vagrant ssh
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-47-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

Expanded Security Maintenance for Applicationsが無効化されています。

0のアップデートはすぐに適用されます。

8個の追加のセキュリティアップデートが、ESM Appsによって適用できます。
ESM Appsの有効化方法についてはこちらを参照してください: at https://ubuntu.com/esm

→(余計な PRO についての)コメントが表示される設定になっていました:

vagrant@vagrant:~$ 

→プロンプトが変更されました。

-


4). 「仮想マシン」を色々と確認:

vagrant@vagrant:~$ uname -r
6.8.0-47-generic

-

vagrant@vagrant:~$ uname -a
:
Linux vagrant 6.8.0-47-generic #47-Ubuntu SMP PREEMPT_DYNAMIC Fri Sep 27 21:40:26 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

-

vagrant@vagrant:~$ cat /etc/lsb-release
:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS"

-


5). システム更新してみる:

vagrant@vagrant:~$ sudo apt update
:
取得:1 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
ヒット:2 http://jp.archive.ubuntu.com/ubuntu noble InRelease                   
取得:3 http://jp.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]    
取得:4 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages [556 kB]
ヒット:5 http://jp.archive.ubuntu.com/ubuntu noble-backports InRelease
808 kB を 4秒 で取得しました (180 kB/s)                
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了        
パッケージはすべて最新です。

→パスワードは聞いてきません:

-

vagrant@vagrant:~$ sudo apt upgrade
:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
アップグレードパッケージを検出しています... 完了
Get more security updates through Ubuntu Pro with 'esm-apps' enabled:
  libcjson1 libpostproc57 libavcodec60 libavutil58 libswscale7 libswresample4
  libavformat60 libavfilter9
Learn more about Ubuntu Pro at https://ubuntu.com/pro
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

→システム更新なし:

-


6). 「ssh 接続」を抜けました:

vagrant@vagrant:~$ exit
ログアウト
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$

→プロンプトが元に戻りました:

-


7). 「仮想マシン」の電源オフ:

ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant halt
==> default: Attempting graceful shutdown of VM...
==> default: Forcing shutdown of VM...
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ 

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----

12. 「VirtualBox マネージャ」で「仮想マシン」の設定を見比べ:

-

1). 「VirtualBox マネージャ」を起動:

-

2). 設定の比較:

Box の元になった「仮想マシン」と、

そのBox から vagrant で新規に作成した「仮想マシン」の設定を、見比べてみました:

-

3). 設定の違い:

プロセッサー」が「8」から「4」に減ったぐらいで、他は同じ設定だったので、

「4」→「8」に変更後、「起動ボタン」で立ち上げてみました:

-

→「仮想マシン」が「クルクル回転」の画面のまま、立ち上がりません:

-

4). 動作の違い:

  • Box の元になった「仮想マシン」は、「起動ボタン」で立ち上がります:

  • そのBox から vagrant で新規に作成した「仮想マシン」は、「起動ボタン」で立ち上がりません:

-

何かが違うのは確かみたい:

→設定をみただけではわかりません:

VagrantFile をコマンド行で変更した場合、その部分だけでなく、それに伴った(設定からは見えない)部分も変更されるようです。

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- -----

13-1. 「VagrantFile」を最小限の設定にして、「仮想マシン」を作成:

-

出来るだけ、元の「仮想マシン」の(Box イメージ)の設定が反映されるように、

「VagrantFile」を最小限の設定にして、「仮想マシン」を作成しました:

-


1). 「VagrantFile」の修正:

$ cd ~/ダウンロード/vm/ubuntu-cn/
$ nano Vagrantfile

Ctrl+K を数回押して、既存のすべての行を削除:

↓ 下の行をすべて範囲選択後、右クリックで「コピー」して「貼り付け」

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "UbuntuCN24-04"
  # ホストの作業フォルダ内の data フォルダと
  # 仮想マシン内の /vagrant_data フォルダを共有:
  # 指定のフォルダがない場合は、フォルダを作成:
  config.vm.synced_folder "./data", "/vagrant_data", create: true
  # デフォルトの共有フォルダを無効にします:
  config.vm.synced_folder ".", "/vagrant", disabled: true
  config.vm.provider "virtualbox" do |vb|
    # 仮想マシンの起動時に VirtualBox GUI を表示:
    vb.gui = true
  end
end

-

→Crtl+O で、保存。保存先を確認して、Enter

→Crtl+X で、終了

-

参考:「config.vm.box = "UbuntuCN24-04"」の行を変更すれば、他の「仮想マシン」でも使い回し出来ます:

-


2). 「VagrantFile」修正後の「仮想マシン」の再作成:

$ cd ~/ダウンロード/vm/ubuntu-cn/
$ vagrant reload
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
[default] GuestAdditions 7.0.22 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant_data => /home/ubn/ダウンロード/vm/ubuntu-cn/data
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ 

→「仮想マシン」が立ち上がりました:

-


3). 確認:

ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant status
:
Current machine states:

default                   running (virtualbox)

-


4). 電源オフ:

ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant halt
:
==> default: Attempting graceful shutdown of VM...
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ 

-


5). ホストOS を再起動:

「端末」以外の画面を閉じてから、

ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ reboot

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- -

13-2. 「仮想マシン」を再立ち上げ:

-

仮想マシン」作成して、ホストOS を再起動させた後の、立ち上げです:

-


1). 「仮想マシン」の立ち上げ:

ubn@ubnbox:~$ cd ~/ダウンロード/vm/ubuntu-cn/
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
[default] GuestAdditions 7.0.22 running --- OK.    ←「注目」
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant_data => /home/ubn/ダウンロード/vm/ubuntu-cn/data    ←「注目」
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ 

→「仮想マシン」が立ち上がりました:

-


2). 「仮想マシン」の確認:

ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant status
Current machine states:

default                   running (virtualbox)

-

ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant global-status
id       name    provider   state   directory                           
------------------------------------------------------------------------
c90f5ee  default virtualbox running /home/ubn/ダウンロード/vm/ubuntu-cn  

→「仮想マシン」を作り直したのに、ひとつのまま、ということに注目:

-


3). ssh 接続:

ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant ssh
:
Last login: Mon Oct 28 21:13:27 2024 from 10.0.2.2
vagrant@vagrant:~$ 

-


4). 確認:

vagrant@vagrant:~$ date
2024年 10月 29日 火曜日 02:26:44 JST

-

vagrant@vagrant:~$ sudo date
2024年 10月 29日 火曜日 02:26:49 JST

→パスワード必要なし

-

vagrant@vagrant:~$ locale
:
LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC=ja_JP.UTF-8
LC_TIME=ja_JP.UTF-8
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY=ja_JP.UTF-8
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER=ja_JP.UTF-8
LC_NAME=ja_JP.UTF-8
LC_ADDRESS=ja_JP.UTF-8
LC_TELEPHONE=ja_JP.UTF-8
LC_MEASUREMENT=ja_JP.UTF-8
LC_IDENTIFICATION=ja_JP.UTF-8
LC_ALL=

→日本語化されています:

-


5). 「ssh 接続」を抜けました:

vagrant@vagrant:~$ exit
ログアウト
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$

→プロンプトが元に戻りました:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- --

13-3. 参考: 「仮想マシン」の再起動で、「仮想マシン」が立ち上がらないことがありました:

-

1). 「仮想マシン」の画面の右上の「x」で電源オフ:

VirtualBox マネージャ」で「起動ボタン」をクリックしても、同じ:

-

なので、

2). 「VirtualBox マネージャ」の設定を見直し:

-

「一般」→「基本」タブ

タイプ: Linux
バージョン: 「Ubuntu (64-bit)」→「Ubuntu 24.04 LTS (Noble Numbat) (64-bit)」に変更

→OK

-

この部分の変更は、「仮想マシン」の作成後、いつでもできるようです:

-

3). 右上の緑色の矢印の「起動ボタン」をクリック:

-

4). ブート選択画面が表示:

→Enter

-

5). 「仮想マシン」が立ち上がるようになりました:

-

バージョン(リリース番号)の登録の変更は、「仮想マシン」の作成後、いつでもできます:

一覧表示にリリース番号がなくて、「Ubuntu (64-bit)」としていても、
その後、一覧に登録されたらそのリリース番号に変更するのが、良さそう:

同じ Ubuntu でもリリース番号によっては微妙にシステムの仕組みに違いがあるので、登録されたバージョンの情報を見て、条件判断しているアプリ(ライブラリ?)があるかもしれません。

詳細に「Linux ディストリビューション」のバージョン(リリース番号)を登録するのは、「仮想マシン」の安定動作につながるようです:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ---

14. 日本語入力:

-

1). 日本語入力できるかの確認:

-

テキストエディター「gedit」を起動:
  • 画面下の「パネル」の「JA」をクリックして「日本語 - Mozc」を選ぶか、

または、

  • Windows+スペース」キーを押してから、

  →「半角/全角」キーを押すと、日本語入力できました:

→画面下の「パネル」の「あ」の色が見やすい水色に変更されていることに注目:

-

2). インストールされている入力メソッドを確認:

「半角/全角」キーを押して、「A」(日本語オフ)にしてから:

Ctrl+Alt+T で「端末」を起動:

$ apt list uim* | grep 済
$

-

$ apt list fcitx* | grep 済
$

→インストールなし

-

$ apt list ibus* | grep 済
:
ibus-data/noble,now 1.5.29-2 all [インストール済み、自動]
ibus-gtk3/noble,now 1.5.29-2 amd64 [インストール済み、自動]
ibus-gtk4/noble,now 1.5.29-2 amd64 [インストール済み、自動]
ibus-gtk/noble,now 1.5.29-2 amd64 [インストール済み、自動]
ibus-mozc/noble,now 2.28.4715.102+dfsg-2.2build7 amd64 [インストール済み]
ibus-table/noble,now 1.17.4-2 all [インストール済み、自動]
ibus/noble,now 1.5.29-2 amd64 [インストール済み、自動]

→「ibus-mozc」がインストールされていました。

-

3). インストールされているmozc 関連を確認:

$ apt list *mozc* | grep 済
:
ibus-mozc/noble,now 2.28.4715.102+dfsg-2.2build7 amd64 [インストール済み]
mozc-data/noble,now 2.28.4715.102+dfsg-2.2build7 all [インストール済み、自動]
mozc-server/noble,now 2.28.4715.102+dfsg-2.2build7 amd64 [インストール済み、自動]
mozc-utils-gui/noble,now 2.28.4715.102+dfsg-2.2build7 amd64 [インストール済み]

→「mozc-utils-gui」もインストールされていました。

-

-


4). 任意:「Windows+スペース」では面倒なので、「半角/全角」キーに割当を変更:

パネルの「JA」または、「あ」を右クリック → 設定 →「IBusの設定」画面

-

「全般」タブ:

「次の入力メソッド: space」の右にある「…」をクリック

「Super」のチェックを外して、キーコード「space」の右にある「…」をクリック→「無効」をクリック→「新しいアクセレータ」で「半角/全角」キーを押します。

下の真ん中の「適用」ボタンを押します。

→「Zenkaku_Hankaku」に変わりました。

→右下の「OK」

-

これで、「半角/全角」キーで、「JA」、「あ」の切り替えができます。

-


5). 任意:「日本語 キーボード」の別々のキーに割当を定義:

  • 「半角/全角」キーだけで日本語オン・オフするなら、この作業は不要です。

-

パネルの「JA」を「半角/全角」キーで「あ」または「A」に切替え、左クリック → ツール →プロパティ →「Mozc プロパティ」画面

-

もしくは、Menu →「設定」→「Mozc の設定」→「Mozc プロパティ」画面:

「一般」タブ

左下の「初期値に戻す」 →OK

-

下にある、

キー設定の選択: →「カスタム」を選んで右の「編集…」

→「Mozc キー設定」画面

-

左下の「編集」→「定義済みのキーマップからインポート」→「MS-IME」→OK

-

再び、「編集…」(ウィンドウはマウスで広げておくと、作業しやすいです)

上段にある表題の「入力キー」の項目名をクリックして、ソート

-

下記のキーのコマンドを修正:

「コマンド」を 3回クリックするのがコツです:

-

モード 入力キー コマンド 備考
変換前入力中 Hiragana IME を有効化
変換中 Hiragana IME を有効化
直接入力 Hiragana IME を有効化
入力文字なし Hiragana IME を有効化
:
変換前入力中 Muhenkan IME を無効化
変換中 Muhenkan IME を無効化
直接入力 Muhenkan IME を無効化 編集→エントリーを追加が必要
入力文字なし Muhenkan IME を無効化

-

→OK →OK

→適用 →OK

→「閉じる」

-

これで「あ」を見なくても操作できます:

テキストエディタ」などのアプリを起動してから、「半角/全角」キーを押して「JA」以外にしてから、

  • 「ひらがな」キー(Hiragana)で「IME オン」 →日本語「あ」
  • 「無変換」キー(Muhenkan)で「IME オフ」 →英語「A」

(mozc は入力メソッドのオン、オフを別々のキーに簡単に割当てできるのが利点です)

-

「ひらがな」キー(Hiragana)で「IME オン」にならない(ひらがなにならない)ときは「英数」キーを押してください:

-


6). 日本語入力の操作(まとめ):

- 日本語オン・オフ:  半角/全角  ←(デフォルトの定義)

- 日本語オン:     ひらがな   ←(追加の定義)
- 日本語オフ:     無変換   ←(追加の定義)

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- ----

15. 参考: 「ssh 接続」出来なくなり、対応をミスりました:

-

こういうこともあるという、良くない「例」です:

-

ssh 接続」せずに、

デスクトップ画面で、「アプリ」のインストールや GUI の「設定」作業を行っていたら、
いつの間にか「ssh 接続」出来なくなっていました:

-

後でわかったことは、「gufw」ファイアウォール)アプリをインストールして、何気なく、それを有効化してしまったこと:

→接続が遮断されていたということ:

-

それに気付かずに、ssh の設定等をいじっていたら、致命的になりました:

たぶん、「仮想マシン」の作り直し。今までインストールした「アプリ」とか「設定」がパア です:

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

追記: もしかしたら、初期対応であれば、コマンドだけで済んだかも:

仮想マシン」の「端末」にて、

確認:
$ sudo ufw status
状態: アクティブ

→ファイアーウォールが有効です:
すべてのポートが拒否(タイムアウト)されます:

-

ssh を許可:
$ sudo ufw allow ssh

もしくは、

ポートの確認:

$ cat /etc/services | grep ssh
ssh     22/tcp              # SSH Remote Login Protocol

-

確認したポートを許可:
$ sudo ufw allow 22

-

もしくは、ホストOS の「端末」で確認:

仮想マシン」を立ち上げた状態で、

$ cd ~/ダウンロード/vm/ubuntu-cn/
$ vagrant ssh-config

-

もしかしたら、
$ sudo ufw allow 2222

ポートが違う可能性があります:

-

-

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

-


1). 「仮想マシン」は立ち上がるけど、ssh 接続以降の動きが変です:

-

(1). 「仮想マシン」の確認:
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant global-status
:
id       name    provider   state    directory                           
-------------------------------------------------------------------------
c90f5ee  default virtualbox poweroff /home/ubn/ダウンロード/vm/ubuntu-cn       

-

(2). 「仮想マシン」の立ち上げ:
ubn@ubnbox:~$ cd ~/ダウンロード/vm/ubuntu-cn/
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant up
:
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key

↓ これ以降、メッセージの表示なし:

だいぶ経ってから、タイムアウトの赤いメッセージ:

Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.

If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.

If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ 

→「仮想マシン」は立ち上がるけど、vagrant のメッセージが変です:

ssh の認証待ち、で止まっていそうですが、エラーがないのが変です:

-

(3). 「ssh 接続」してみる:
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant ssh
:
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$

→しばらくして、「ssh 接続」できずに、元のプロンプトが返りました。

なぜか、エラー表示がありません。

-

追記:

無応答(デフォルト)の場合は、

ファイアウォール」が有効になっていないか、確認すべきでした:

-

(4). 「仮想マシン」の状態を確認:
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant status
Current machine states:

default                   running (virtualbox)

-

(5). 「仮想マシン」を停止:
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant halt
:
==> default: Attempting graceful shutdown of VM...
    default: Guest communication could not be established! This is usually because
    default: SSH is not running, the authentication information was changed,
    default: or some other networking issue. Vagrant will force halt, if
    default: capable.
==> default: Forcing shutdown of VM...

-


2). 現在使っている「Vagrantfile」で「仮想マシン」を再作成:

-

(1). 現在使っている「Vagrantfile」を確認:
ubn@ubnbox:~$ cd ~/ダウンロード/vm/ubuntu-cn/
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ ls
Vagrantfile  data
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ cat Vagrantfile
:
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "UbuntuCN24-04"
  # ホストの作業フォルダ内の data フォルダと
  # 仮想マシン内の /vagrant_data フォルダを共有:
  # 指定のフォルダがない場合は、フォルダを作成:
  config.vm.synced_folder "./data", "/vagrant_data", create: true
  # デフォルトの共有フォルダを無効にします:
  config.vm.synced_folder ".", "/vagrant", disabled: true
  config.vm.provider "virtualbox" do |vb|
    # 仮想マシンの起動時に VirtualBox GUI を表示:
    vb.gui = true
  end
end

-

(2). 「仮想マシン」を再作成:
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant reload
:
==> default: Clearing any previously set forwarded ports...
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2200 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2200
    default: SSH username: vagrant
    default: SSH auth method: private key

↓ これ以降、メッセージの表示なし:

Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.

If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.

If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ 

→変化なし:

-

(3). このときは、原因はわからず:

再起動できないので強制的な電源オフを繰り返したり、「内部エラー」が多発したりで、システムが壊れたと、勘違い。

-

(4). 「仮想マシン」を停止:
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant halt
==> default: Attempting graceful shutdown of VM...
    default: Guest communication could not be established! This is usually because
    default: SSH is not running, the authentication information was changed,
    default: or some other networking issue. Vagrant will force halt, if
    default: capable.
==> default: Forcing shutdown of VM...
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ 

-


3). システムが壊れたと、勘違いして、「ssh 接続」の設定をやり直し:

ゲストOS の「端末」で操作:

-

(1). 現在のキーを確認:
vagrant@vagrant:~$ ls -lAp /home/vagrant/.ssh
:
-rw------- 1 vagrant vagrant 89 10月 28 20:27 authorized_keys

→ファイルサイズが小さいです:

-

(2). キーの内容を確認:
vagrant@vagrant:~$ cat .ssh/authorized_keys
ssh-ed25519 AAAAC3Nz……………6hfTyqN6yG976g vagrant

-

追記:

この値を省略せずに、どこかに保存しておけば良かったかも。

-

(3). ここで、「ファイアーウォール」をインストールしていたことに気付きました:

-

(4). GUI で、ファイアーウォールを停止:

停止した後に、再起動するだけで良いのかは、不明:

残念ながら、以降のステップに進んでしまいました:

(5). ssh の設定をやり直し:
vagrant@vagrant:~$ mkdir -p /home/vagrant/.ssh
vagrant@vagrant:~$ chmod 700 /home/vagrant/.ssh
vagrant@vagrant:~$ cd /home/vagrant/.ssh
vagrant@vagrant:~/.ssh$ curl -k -L -o authorized_keys 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub'

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   409  100   409    0     0    312      0  0:00:01  0:00:01 --:--:--   312
vagrant@vagrant:~/.ssh$ chmod 600 /home/vagrant/.ssh/authorized_keys
vagrant@vagrant:~/.ssh$ chown -R vagrant:vagrant /home/vagrant/.ssh
vagrant@vagrant:~/.ssh$ cd

-

(6). 確認:
vagrant@vagrant:~$ ls -lAp /home/vagrant/ | grep ssh
:
drwx------  2 vagrant vagrant  4096 10月 28 20:27 .ssh/

-

vagrant@vagrant:~$ ls -lAp /home/vagrant/.ssh
:
-rw------- 1 vagrant vagrant 409 11月  1 01:34 authorized_keys

→ファイルサイズが元に戻りました:

-

(7). キーの内容を確認:
vagrant@vagrant:~$ cat .ssh/authorized_keys
:
ssh-rsa AAAAB3Nz………
:
………8jlqm8tehUc9c9WhQ
== vagrant insecure public key

→初期設定で使う「公開鍵」になりました:

-

(8). 後でわかったことですが、この操作がマズかったみたい:
→「キーを初期化」してしまいました:

-

(9). 「仮想マシン」の再起動:
vagrant@vagrant:~$ reboot

-

(10). ssh 関連のサービスが起動されているか確認:
vagrant@vagrant:~$ sudo systemctl status sshd
:
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enab>
     Active: active (running) since Fri 2024-11-01 01:46:22 JST; 16min ago
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 1181 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 1202 (sshd)
      Tasks: 1 (limit: 9424)
     Memory: 2.1M (peak: 2.4M)
        CPU: 1.347s
     CGroup: /system.slice/ssh.service
             └─1202 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

11月 01 01:46:20 vagrant systemd[1]: Starting ssh.service - OpenBSD Secure Shel>
11月 01 01:46:22 vagrant sshd[1202]: Server listening on :: port 22.
11月 01 01:46:22 vagrant systemd[1]: Started ssh.service - OpenBSD Secure Shell>
vagrant@vagrant:~$ 

→サービスは動いています:

-

(11). sshサービスを再起動してみる:
vagrant@vagrant:~$ sudo systemctl restart sshd
vagrant@vagrant:~$ 

-

(12). 確認:
vagrant@vagrant:~$ sudo systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
     Active: active (running) since Fri 2024-11-01 02:03:50 JST; 57s ago
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 2983 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 2985 (sshd)
      Tasks: 1 (limit: 9424)
     Memory: 1.2M (peak: 1.4M)
        CPU: 61ms
     CGroup: /system.slice/ssh.service
             └─2985 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

11月 01 02:03:50 vagrant systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
11月 01 02:03:50 vagrant sshd[2985]: Server listening on :: port 22.
11月 01 02:03:50 vagrant systemd[1]: Started ssh.service - OpenBSD Secure Shell server.
vagrant@vagrant:~$ 

→代り映えしないですね

-

(13). 「ssh 接続」してみる:
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant ssh
vagrant@127.0.0.1's password: ←「vagrant」入力

vagrant@vagrant:~$

→あれっ、「vagrant ssh」でパスワードを聞いてきました。変です:

-

(14). 名前解決できていないのか確認:
vagrant@vagrant:~$ uname -n
vagrant
vagrant@vagrant:~$ uname -a
Linux vagrant 6.8.0-48-generic #48-Ubuntu SMP PREEMPT_DYNAMIC Fri Sep 27 14:04:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

→見えています:

-

(15). 念の為、現在のホスト名をコマンドで確認:
vagrant@vagrant:~$ hostnamectl | grep hostname
 Static hostname: vagrant

-

参考: ホスト名を変更する場合:

$ sudo hostnamectl set-hostname vagrant

-


4). 「仮想マシン」を立ち上げてみる:

ubn@ubnbox:~$ cd ~/ダウンロード/vm/ubuntu-cn/
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ vagrant up
:
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

↓ 違うメッセージ(認証に失敗)が繰り返すようになりました:

だいぶ経ってから、タイムアウトの赤いメッセージ:

Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.

If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.

If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.
ubn@ubnbox:~/ダウンロード/vm/ubuntu-cn$ 

→やっちゃたかな。

-


5). ダメですね:

-

ssh の設定等をいじっていたら、(ssh 接続には)致命的になりました:

仮想マシン」を作り直すと、今までインストールした「アプリ」とか「設定」がパア です:

それを活かすには、現在の「仮想マシン」から「Box」を作成して、再度「仮想マシン」を作り直すのが良いとは思いますが、システムの一部が壊れている可能性も捨てられません。

-

もし、vagrant での管理を続けるなら、

現在の「仮想マシン」と「作業フォルダ」を削除後に、再度「vagrant up」するのが確実だと思います:

-


6). 色々と問題が出る、vagrant での管理はあきらめて、「Ubuntu Cinnamon 24.04 LTS」の安定路線で行くことにしました:

次の「項番 16.」の「項番 5).」を参照:

-

-


- --- - --- - --- - --- - --- - --- - --- - --- - ----- ----- ----- ----- -----

16. 気づいたこと:

-

VirtualBox 7.0.22」の「仮想マシン」に「Ubuntu Cinnamon 24.04.1 LTS」をインストールした場合です:

-

Ubuntu Cinnamon 24.04 LTS」は、まだ「マイナー」だと思いました:

→「VirtualBox」の「Guest Additions」での動作確認が足りない?ようです:

 つまり、ホストOS としては使っても、仮想マシン」として使うことは少ない、のだと思います:

-


1). 個人的に確認できたこと:

  • 「Guest Additions」をインストールしていなければ、(デフォルト?の)仮想化支援機能の「ネステッドページングを有効化」に設定、で「安定」して動きます:

  • 「Guest Additions」をインストールすると、仮想化支援機能の「ネステッドページングを有効化」に設定すると、仮想マシンの再起動で立ち上がらない、ことがあります:

  • 「Guest Additions」をインストールしても、仮想化支援機能の「ネステッドページングを有効化」を無効に設定すると、仮想マシン立ち上がりました

  • 「Guest Additions」をインストールして、仮想化支援機能の「ネステッドページングを有効化」を無効に設定すると、起動が遅くなり、アプリの起動で内部エラーが出たり(下記参照)しました:

-

アプリの起動時に、時々「内部エラー」が発生:

→「問題を報告」(送信)するかを聞いてくるだけで、動作に支障はありません:

 複数のアプリで発生します:

-

デフォルトの設定以外で「無理」に動かしているから、と思われます:

-


2). 今回の問題は「Ubuntu Cinnamon 24.04 LTS」の不具合ではない?と思われます:

→実機、もしくは、ホストOS 側にインストールすれば、発生しないと思われます:

-


3). 「Guest Additions」を使うと、「Ubuntu Cinnamon 24.04 LTS」の場合に不具合が出る、ということです:

→「VirtualBox」の「Guest Additions」での動作確認が足りない?ようです:

-

ちなみに、「VirtualBox」と「Guest Additions」はオラクルから無償で提供されており、
サポートは「コミュニティ」で行われています:

つまり、自己責任です:

-


4). vagrant の使用について:

-

  • (今のところ)「Ubuntu Cinnamon 24.04 LTS」は、「Guest Additions」をインストールしていなければ安定しています:

  • 「Guest Additions」をインストールしたとたん、時々立ち上がらなかったり、内部エラーが出たりと、不安定になります:

-

  • 「Guest Additions」をインストールして使う場合は、

 こちらの「設定」になっているか確認しないと、立ち上がりません:

-


5). 「VirtualBox 7.0.22」の「仮想マシン」で、「Ubuntu Cinnamon 24.04 LTS」を使う場合は、

「Guest Additions」をインストールせずに使う方が安定します:

 こちらの「設定」と、こちらの「設定」になっているか確認:

-

使い方は「こちら」を参照:

-

Ubuntu Cinnamon 24.04 LTS」の「仮想マシン」にて、

仮想化支援機能: 「ネステッドページングを有効化」に設定しても「Guest Additions」がしっかり動く、

VirtualBox」のバージョンが提供されること、

および、そのバージョンに「vagrant」が早く対応してくれると良いですね。

-

ちなみに、「vagrant 2.4.1」は、「VirtualBox 7.0」までの対応です:

最新の「VirtualBox 7.1」には未対応です:

-


6). 追記: 最新の「VirtualBox 7.1.4」と、最新の「Vagrant 2.4.2」を使うと、「Ubuntu Cinnamon 24.04 LTS」の「仮想マシン」が安定して起動しました:

最新の 「Guest Additions 7.1.4」が自動でインストールされるからだろうと思います:

-

残念ながら、「Vagrant 2.4.2」は vagrant plugin がインストールできない問題が残っています。
回避策はありますが、もう少し待つのが正解かも。

-

たぶん、最新の「VirtualBox 7.1.4」であれば、「Vagrant」を使わずに「仮想マシン」を作成して、
「Guest Additions」を手動でインストールしても、うまく動くと思います:

-

動いたときの「仮想マシン」の設定:
- ディスプレイ→「グラフィックコントローラー」:   
 「VMSVGA」で、「3Dアクセラレーション」にチェック:

- システム→「アクセラレーション」:  
 「デフォルト」で、「ネステッドページンクを有効化」にチェック:

-

-


まとめ

今回、「VirtualBox 7.0.22」に、「Ubuntu Cinnamon 24.04 LTS」をインストールして、 それを vagrant で管理できるように「Ubuntu Cinnamon 24.04 LTS」の「仮想マシン」を作り直しました。

-

vagrant の総復習にはなったけど、「Ubuntu Cinnamon 24.04 LTS」を選んだので、手間取りました:

-

Ubuntu Cinnamon 24.04 LTS」の「仮想マシン」は、 (今のところ)「Guest Additions」をインストールしないで使うと安定します:

→つまり、vagrant を使うと(「Guest Additions」が、強制的にインストールされて不安定になるので)苦労します。

-

Ubuntu Cinnamon 24.04 LTS」を「仮想マシン」として使うときの「留意点」がわかったので、勉強になったかな。

-

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-