仮想PCにRaspbianを入れる

前説

Raspberry Piを購入して、はやウン年。
最初はサーバーとか入れたりしてみて弄っていたが、自分の住む地域を度々襲ってくる原因不明の停電による給電停止や、ミスによる電源切断によりパソコンにおける基本的な「絶対にやってはいけないこと」である「急に電源を落とさない」を繰り返してしまったためSDカードが犠牲になってしまった。*1

急に電源を落としてもちゃんと息を吹き返してくれる家庭用機器をイメージして、起動時にデータを読み取って後はメモリ上だけで動作する読み取り専用化を試みたが、動作を見てみるとどうもなんかうまく行っていない様子で不安になった。*2

そんなこんなでモチベーションが低下したため物置の肥やしとなっていたが、仮想PC上でエミュレーションし、良い結果が出たものについては実機にフィードバックすれば良いと先日思いついたため*3調べることにした。

RaspbianはRaspberry Pi以外でも使えるのか?

そもそも仮想PC上でRaspbian*4は動くのか。
www.raspberrypi.org
公式のダウンロードページを覗いたらシステムの必要要件とか記載があるかと考えたが、「Raspberry Piすべてのモデルで動作します」くらいのさらっとした事くらいだった。そりゃそうか。
ただ、ダウンロードページの下部にRaspberry Pi Desktopなるものを発見。Raspberry Pi以外のパソコンへのインストールに使うものらしく、説明文には「仮想マシンでも動きますよ」的な記載があった。別で用意されているようだ。*5

導入

1. 公式ダウンロードページから「Debian Stretch with Raspberry Pi Desktop」を調達。
   www.raspberrypi.org

   f:id:sudo210:20190715115939p:plain

2.仮想マシンの設定を行う。なお、「Oracle VW VirtualBox」を使用。
   

f:id:sudo210:20190715124924p:plain
設定画面
  ※注意 ビデオメモリ16MBだと動きません。*6目安としては64MBにすること。

3.仮想マシンに「Raspberry Pi Desktop」をインストール。
  ダウンロードしたISOファイルを仮想マウントし、メニューから「install」を選択。
  他のメニューからはLiveCDの様にインストールせずに起動も可能。
   f:id:sudo210:20190715125654p:plain
4.画面に従い設定を行う。
 (1)Configure the keyboard:「Japanese」
 (2)partition disks
  f:id:sudo210:20190715130201p:plain
  ・Guided - use entire disk(自動設定)
  ・Guided - use entire disk and set up LVM(暗号化しないLVM*7
  ・Guided - use entire disk and set up encrypted LVM(暗号化するLVM)
  ・manual(自分で頑張る)
  意味は以上の通り。面倒は嫌なので「Guided - use entire disk」を選択。
  次の画面では、仮想上のディスクは一つしかないので、それを選択。
  f:id:sudo210:20190715131618p:plain
  ディレクトリごとにパーテーションを分けられるようだが、「All files in one partition」を選択。
  次の画面で「Finish partitioning and write changes to disk」を選択。
  f:id:sudo210:20190715132716p:plain
  最後に確認して、「Yes」を選択。
 (3)Install the GRUB boot loader on a hard disk:「Yes」
  GRUBブートローダーをメインにしますか?と聞かれているようだ。
  f:id:sudo210:20190715133756p:plain
  メインでブートするドライブを選択する。
 (4)Finish the installation:「continue」
  再起動するんで、メディア抜いとけよ!って言ってると思われる。
  ちなみに仮想マウントは自動的に外れていた。

デスクトップが立ち上がったら完了。
もう環境を壊してSDカードに新規のイメージを書き込む手間もなくなるので、一安心だ。

*1:読み取りはできるけど書き込みとフォーマットができない

*2:kernelを弄らないお手軽な方法だったと記憶

*3:遅すぎる発想

*4:余談だが正式になんて読むのか不明。Googleはラスプビアンって読んだのでそれに習う

*5:ARMアーキテクチャx86/x64アーキテクチャの違いによるものだろうか

*6:スプラッシュ画面で固まります

*7:複数のディスクやパーテーションを一つのボリュームに見せかけることができる技術