動機
VS CodeのSSHFSを入れたらパーミッション壊さずにgitが使える[1]よと聞いたのでWSLでやってみたけど,どうせならVMを立ててもええんちゃうかと思ったので.
tl;dr
- タスクスケジューラを使ってWindowsの起動時にVirtualBoxのVMを起動したい.
VBoxHeadless.exe -s VM
だけでも一応できるが,cmd.exeのプロンプト画面が出てきて気持ち悪い.- その上,プロンプト画面を閉じるとVMも閉じてしまう.
- のでヘッドレスをバックグラウンドでクールにオートマチックにブートしてみる.
環境
- ホストOS: Windows 10 (1809)
- VirtualBox 6.0.6
- ゲストOS: Debian 9.9
やること
-
VirtualBoxとホストOSのインストール
めんどいので省略. Qiitaでも漁ればいくらでも出てくるでしょ.-
ホストOS(Debian)で
sudo systemctl set-default multi-user.target
しとくと要らんGUIが上がってこなくてよい. -
VirtualBoxは
C:\Program Files\Oracle\VirtualBox\
にあると仮定. -
ホストのWinからVMにだけアクセスしつつ,VMもインターネッツにつなぎたいときは,VBoxのネットワークアダプタを
NAT+ホストオンリーアダプタ
の2本立てにするといい.[3] [4]
ホストオンリーアダプタのIPアドレス範囲は ファイル>干すとネットワークマネージャー の中に転がってる.
-
-
Win10にOpenSSHをいれる
省略.[2] -
タスクスケジューラに設定する
- 起動するだけなら上述のとおり,
VBoxHeadless.exe -s VM
すればいいけど.プロンプト画面を出さずにやるのでPowershell をつかう. - タスクスケジューラの「プログラムの開始」で
プログラム/スクリプト:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
引数:-Command "& {start-process \"C:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe\" \"-s Debian9.9\" -WindowStyle Hidden}"
とする.[5][6] - トリガーは「ユーザーのログオン時」あたりを適当に.
- 起動するだけなら上述のとおり,
-
おわり
あとはssh.exe (VMのアドレス)
とかやればつながるので,SSHFSに入れる.
きもち
VS CodeのターミナルをWSLやcmd.exeすっとばして直接ssh.exe VM
にしたいんだがどうやるんだ.
そんな感じ.
では.
[1]: Visual Studio CodeでSSHごしにファイルを編集する - Qiita https://qiita.com/informationsea/items/5c9f05c81a41fb885460
[2]: Windows10 に OpenSSH インストール - Qiita https://qiita.com/sigenyan/items/1de0b74541f5cef7614f
[3]: VirtualBoxでDebianを使うときの設定 - ゆっくり備忘録 http://mitsuakikawamorita.com/blog/?p=1146
[4]: VirtualBox のネットワークアダプタまとめ - Qiita https://qiita.com/taopi/items/0f9475e4c0e230911eb7
[5]: 猫科研究所 - コマンドプロンプトのエスケープ仕様 http://up-cat.net/%25A5%25B3%25A5%25DE%25A5%25F3%25A5%25C9%25A5%25D7%25A5%25ED%25A5%25F3%25A5%25D7%25A5%25C8%25A4%25CE%25A5%25A8%25A5%25B9%25A5%25B1%25A1%25BC%25A5%25D7%25BB%25C5%25CD%25CD.html
[6]: windows - Vboxheadless without a command prompt (VirtualBox) - Server Fault https://serverfault.com/questions/89252/vboxheadless-without-a-command-prompt-virtualbox