Manjaro LinuxをHyper-VにインストールしてRDP接続で使う
環境
Windows 10 Pro 1909 build:18363.778
Manjaro Linux 19.0.2(xfce) 1
手順
Hyper-V マネージャーで仮想マシンの新規作成
新規仮想マシンの作成ウィザードで適当に作る。
項目 | 設定 |
---|---|
世代 | 第2世代 |
メモリ | 4096MB(お好みで。動的メモリも好きな方で) |
NIC | インターネットに接続可能な仮想スイッチ |
仮想HDD | 127GB(お好みで) |
インストールメディア | manjaro-xfce-19.0.2-200311-linux54.iso |
作成までしたら起動する前に以下の設定を変更しておく。
- セキュアブートのチェックを外して無効にする ※重要
- 仮想プロセッサ数をお好みで変更する
- その他はお好きなように
仮想マシンの起動・インストール
インストールメディアを起動し、メニューが開いたらそのままEnter
でbootを選ぶ。(言語設定とかできるけど、ここでやってもそんなにメリットが無いのでそのままでいい)
起動中に以下の画面のような表示が出たところで止まってしまう。
これディスプレイドライバが対応していないのが原因らしい。
ここでCtrl+Alt+F2
を押下すると、以下のようなコンソールのログイン画面に切り替えられる。
書いてあるとおり、ログイン名、パスワードは共にmanjaro
でログインできる。
ログインしたら、Pacman(標準パッケージマネージャ)を使ってディスプレイドライバをインストールする。
$ sudo pacman -Sy
$ sudo pacman -S xf86-video-fbdev
$ sudo systemctl start lightdm
途中で入力を求められたら適当にEnter
とかy
とかで。
起動時の最初のメニューで言語を日本語にしてると、フォントが入っていなくて文字化けするっぽいが、ここでは無視してエンター連打とかで進んじゃって良いと思う。
無事GUI画面に切り替わったら「Launch installer」とか「インストールの開始」ボタンを押して、画面の指示に従ってインストールする。
初回起動
インストール完了後に再起動をかけると、インストール先の仮想HDDにはインストール時に使ったドライバが含まれていないため、またディスプレイドライバの問題が起きる。
インストール時の作業と同様にCUI画面にエラーが表示されて止まる事や、以下のようなノイズの入った画面で止まる場合がある。
とりあえず落ち着いてCtrl+Alt+F2
を押下すればコンソールのログイン画面が出るので、ログインしてドライバをインストールする。(今度はインストール時に作成したユーザー名とパスワードでログインする事に注意)
まず
$ sudo pacman -Sy
を実行すると、
インストール時に日本語を選択しているとこんな感じで文字化けすると思われる。
[sudo]
の行で入力待ちになってたら、sudoのパスワードを要求されているので、インストール時に設定した管理者アカウントのパスワードを入れて適当に進む。
この場合は以下のようにディスプレイドライバと一緒に日本語フォントをインストールしてやる。
インストール時に出てくる入力要求とかは適当にEnter
とかでよい🙆♂️
$ sudo pacman -S noto-fonts-cjk
$ cd /etc/fonts/conf.d
$ sudo ln -s ../conf.avail/70-noto-cjk.conf
$ sudo pacman -S xf86-video-fbdev
$ sudo systemctl start lightdm
とりあえず、これで起動まではいけるハズ🙆♂️
初期設定
リポジトリのミラーリストの更新
お近くのリポジトリを使うようにする。
利用可能なリポジトリの接続速度をチェックしに行くため、ちょい時間がかかる。
$ sudo pacman-mirrors --fasttrack
パッケージのアップグレード
登録済みのパッケージを最新にする。
これもまぁまぁ時間がかかる。
ミラーリストを更新してからやった方が良いでしょう🙆♂️
$ sudo pacman -Syyu
AURヘルパー(yay)のインストール
必要なら。
自分でmakepkg -si
とかやるなら要らない。
$ sudo pacman -S yay
日本語名ディレクトリの変更
$HOME
以下に「ダウンロード」とか「ビデオ」とかの日本語名ディレクトリがあるのが気持ち悪い(かつCUIで扱いづらい)ので、英語名に変更したい。
~/.config/user-dirs.locale
を任意のテキストエディタ開く(ここではnanoを利用)と、
ja_JP
となっているので、
C
に変更して保存する。
$ rm ~/.config/user-dirs.dirs
$ LC_ALL=C xdg-user-dirs-gtk-update
で~/.config/user-dirs.dirs
を削除してから更新をすると、英語名のディレクトリが作成される。
ここまで完了したら一度ログアウトしてからログインしなおして、ファイルマネージャー等で日本語ディレクトリを削除してやれば完成。
日本語入力
日本語の設定(公式)に手順は書いてあるが、いくつか問題があった。
- 「ロケールの変更」の手順は不要。(おそらくインストール時に日本語を選択したからだと思う)
-
yaourt
はもう開発停止になってる。(大体としてyayを使うことになると思う) -
ibus-qt
はpacmanではインストールできない。(AURにあるのでyayならいける) - 個人な事情があってmozcを使いたい。(普段Google日本語入力+dvorak入力のカスタマイズをしているので)
- ibusでなくfcitxを使う場合、rdp接続した時にちゃんと起動してくれない。
また、Hyper-Vの「仮想マシン接続」ではちゃんと動いてくれるのに、xrdpをインストールしてWindows 10の標準リモートデスクトップクライアントから接続した場合に日本語入力ができずに色々試行錯誤した結果、以下の手順に落ち着いた。
フォント
これは公式の手順にも載ってる通り。
$ sudo pacman -S ttf-sazanami
インプットメソッド・エンジン
AURからインストールするためyayを利用。
$ yay -S ibus-mozc
$ yay -S ibus-qt
設定
公式にはこう書けとあるが、
export LANG="ja_JP.UTF-8"
export XMODIFIERS="@im=ibus"
export XMODIFIER="@im=ibus"
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export DefaultIMModule=ibus
ibus-daemon -drx
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
これだとRDP接続時に上手く動かない。
色々試した結果、環境変数の設定については/etc/environment
と~/.pam_environment
に記述してやることで上手くいった。これが正解なのかわからないが、調べているうちにどこかで見かけてやってみたら上手くできた、という事で、とりあえずヨシとしている。(検索しながら色々試しているうちに解決したため、どこでこの方法を見つけたのかは失念してしまった…)
それぞれ
$ sudo nano /etc/environment
$ nano ~/.pam_environment
で
LANG=ja_JP.UTF-8
XMODIFIERS=@im=ibus
XMODIFIER=@im=ibus
GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
DefaultIMModule=ibus
を記述。
ibus-daemon -drx
の部分はibusデーモンの起動だが、これはDEの自動開始に登録すればとりあえずOK。
xfceのメニューから「設定」-「セッションと起動」を開き、「自動開始アプリケーション」タブで「+追加」を押して、自動開始するアプリケーションとして登録しておく。(名前は適当でコマンドに「ibus-daemon -drx」)
やり方が分かる場合は~/.config/autostart
に適当にファイルを作っても良いと思う。
ここまでやってログアウトし、再度ログインすれば日本語入力できるはず。
初期設定では「Super+Space」が切り替えに割り当てられているっぽいので、気に食わない場合はibus-setup
を起動して適当に変更。
xrdp
インストール
ローカルIPを固定したい場合は適宜IPを降ってから作業する。
基本はArch Linuxの公式に載っている通り2だが、AURのためyay
を使ってインストールする。
$ yay -S xrdp
$ yay -S xorgxrdp-git
設定
$ sudo nano /etc/X11/Xwrapper.config
allowed_users=anybody
サービスの有効化・起動
$ sudo systemctl enable xrdp.service
$ sudo systemctl enable xrdp-sesman.service
$ sudo systemctl start xrdp.service
$ sudo systemctl start xrdp-sesman.service
ここまでやってWindows 10の「リモートデスクトップ接続(mstsc.exe)」から接続してみると、ログイン画面が出る。
そのままユーザー名とパスワードを入力するとちゃんと接続できた。
また、日本語入力も問題なくできた🙆♂️
英語配列キーボードなのにキーの割り当てが異なる問題の対応
ただし、英語配列キーボードを使っているとうまく認識してくれない。(=
を入力しても^
になってしまう等)
どうやら「リモートデスクトップ接続」が送っているキーコードに問題があるようだが、調べて出てくるレジストリをいじる方法等を試しても解決しない。
ちょっと強引かもしれないが、xrdp側で日本語配列キーボードを認識できないようにする事で対応。
$ sudo nano /etc/X11/xrdp/xrdp_keyboard.ini
でキーボード設定ファイルを開き、rdp_layout_jp
のエントリを全てコメントアウトしてしまう。
-rdp_layout_jp=0x00000411
-rdp_layout_jp=0xe0010411
-rdp_layout_jp=0xe0200411
-rdp_layout_jp=0xe0210411
+;rdp_layout_jp=0x00000411
+;rdp_layout_jp=0xe0010411
+;rdp_layout_jp=0xe0200411
+;rdp_layout_jp=0xe0210411
とりあえずこれで上手くいっている。
Windows環境とのファイル共有(samba)
samba本体はインストールに含まれているため、基本的な設定を行う。
設定ファイルのインストール
sudo pacman -S manjaro-settings-samba
で/etc/samba/smb.conf
かインストールされる。
とりあえずそのままでも使えるが、必要に応じて設定を変更する。
共有ユーザー・パスワードの設定
専用の共有ユーザーを作る場合は、あらかじめuseradd
などで追加しておく。
普段利用するユーザーをそのまま利用する場合でも、パスワードは別管理なので設定が必要。
sudo pdbedit -a $USER #または共有専用のユーザー名
でパスワードを登録。
サービスの有効化
smb.service
とnmb.service
を有効化・起動しておく。
sudo systemctl enable smb.service
sudo systemctl enable nmb.service
sudo systemctl start smb.service
sudo systemctl start nmb.service
ここまでやって一度ログオフし、再ログインすればとりあえず共有が使えるようになっている。
thunarプラグインのインストール
thunar上でディレクトリを右クリック→プロパティの画面で「共有」タブを表示して設定できるようにする。
sudo pacman -S thunar-shares-plugin
インストール後、再ログインしたら使えるようになっている。
他
色々調べていると、/etc/X11/Xwrapper.config
にneeds_root_right=auto
やらneeds_root_right=yes
を追加するとか、~/.xinitrc
を編集して--exit-with-session
を削除するとか、その他諸々の設定方法が出てくるが、とりあえず新規で作った環境で以上の設定だけで上手く動いているっぽい。
何か問題があれば適宜修正したい。
-
KDEを使ってみようかと思ったが、どうやらKDE Plasmaはxrdpがちゃんと動かない不具合があるっぽい(どこで見たか忘れたが、実際試してみたら動かなかった)のでxfceにした。 ↩
Author And Source
この問題について(Manjaro LinuxをHyper-VにインストールしてRDP接続で使う), 我々は、より多くの情報をここで見つけました https://qiita.com/gentaro/items/f0b0c6c89b04098f4be8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .