Oracle Cloud (www.oraclecloud.com)で、NetBSD/amd64-currentを起動してみる

この記事は、NetBSD Advent Calendar 2019の17日目の記事です。

はじめに

Oracle Cloudのfree tierが発表されていました。 どうやらOracle Cloudというのは複数のサービスの総称のようなのですが、 今回話題にしているのは、free tierの提供されているものです。 www.oraclecloud.comから申し込みしました。 最初に登録した時には、クレジットカードの認証直後に不明なエラーになって本登録へ進めなかったり、 携帯電話の番号にSMSが来なかったりと、いろいろ進められませんでした。 サポートのチャットに問い合わせても、ショップの問題ですね…と言うだけで、特に直したとか直らないとかいう 連絡も以降ありませんでした。 ですが、今は登録できたので、直してもらえたのだと思います。

今回は、 Importing Custom Linux Imagesを読んで、 NetBSDをLinuxタイプの仮想マシン上で動かす所までやってみました。 ですが、残念ながら使えません。vioscsi(4)の先にsd(4)が認識されない状態です。

作るべきディスクイメージの仕様

Importing Custom Linux Imagesによると、 qcow2かVMDK形式のディスクイメージを作成してアップロードすれば良いようです。 Amazon EC2がddしてスナップショットをとってAMIにして…と言う面倒な手順を踏まないといけないのとは対照的です。 Google Compute Engineと似た感じのようです。

ちなみに、qvow2形式はqemuの標準のディスクイメージ形式で、VMDKはVirtualBoxの標準のディスクイメージ形式です。 どちらもqemuで扱えるので、qemu-system-x86_64でディスクイメージを作成しようと思います。 VirtualBoxのVMDK形式が使えるのがOracleっぽい感じです。

ディスクイメージの作成

qcow2で3 GBのディスクイメージを作成し、このディスクイメージから起動するようにします。 Importing Custom Linux Imagesによると、

  • ディスクイメージサイズは400 GB以下
  • BIOSブートでなくてはいけない
  • ディスクイメージ単体で正常に起動しないといけない
  • UUIDで起動ディスクパーティションをブートローダーが認識するのが良い
  • 暗号化されていてはいけない
  • シリアルコンソールが有効になっていると便利
のような条件が書かれていますので。ブートローダー部分以外は従って行こうと思います、

まずは、3 GBのqcow2のディスクイメージを作ります。
$ qemu-img create -f qcow2 netbsd-10.qcow2 3G
次にNetBSDのインストーラーISOイメージをダウンロードします。 201912172010ZのNetBSD-9.99.26-amd64.isoを今回は利用しました。NetBSD-9.99.26-amd64_201912172010Z.isoとファイル名を変えておきます。 http://nycdn.NetBSD.org/pub/NetBSD-daily/HEAD/からダウンロードします。

次に、NetBSDをインストーラーISOイメージからqcow2ディスクイメージにインストールします。

$ qemu-system-x86_64 -m 256 -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd -drive if=none,id=hd,file=netbsd-10.qcow2 -cdrom NetBSD-9.99.26-amd64_201912172010Z.iso -boot d
または
$ qemu-system-x86_64 -m 256 -drive file=netbsd-10.qcow2,if=none,id=drive-virtio-disk0 -device virtio-blk-pci,drive=drive-virtio-disk0,id=virtio-disk0 -cdrom NetBSD-9.99.26-amd64_201912172010Z.iso -boot d
インストール手順はいつもの通りですが、注意が必要そうな箇所のスクリーンショットを掲載しておきます。ハードディスクをld0として認識させた場合の例です。 (sd0であってもld0であっても結果は変わりません)


ld0をインストール先のハードディスクドライブとして選択します。

GPTパーティショニングします。

作ったパーティションには、Labelを付けておくのが良いでしょう。(付けなくても問題はありません)

シリアルコンソールで115200 bpsを選択しておきます。

sshdを有効にしておきます。この後、vioif0でDHCPでIPアドレスを取得するようにしておくと良いでしょう。

起動してみる

Linuxタイプの仮想マシンで起動します。 最初に書きましたが、残念ながらsd0 at scsipi0が認識されません。 シリアルコンソールで操作も可能ですので、ブートメッセージを含めておきたいと思います。

[   1.0000000] pool redzone disabled for 'pdppl'
[   1.0000000] pool redzone disabled for 'kmem-4096'
[   1.0000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
[   1.0000000]     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
[   1.0000000]     2018, 2019 The NetBSD Foundation, Inc.  All rights reserved.
[   1.0000000] Copyright (c) 1982, 1986, 1989, 1991, 1993
[   1.0000000]     The Regents of the University of California.  All rights reserved.

[   1.0000000] NetBSD 9.99.26 (GENERIC) #0: Tue Dec 17 19:12:50 UTC 2019
[   1.0000000]  mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/amd64/compile/GENERIC
[   1.0000000] total memory = 15359 MB
[   1.0000000] avail memory = 14914 MB
[   1.0000000] pool redzone disabled for 'buf4k'
[   1.0000000] pool redzone disabled for 'buf64k'
[   1.0000000] cpu_rng: RDSEED
[   1.0000000] rnd: seeded with 256 bits
[   1.0000000] running cgd selftest aes-xts-256 aes-xts-512 done
[   1.0000030] mainbus0 (root)
[   1.0000030] ACPI: RSDP 0x00000000000F6FE0 000014 (v00 BOCHS )
[   1.0000030] ACPI: RSDT 0x00000000BFFE1575 000030 (v01 BOCHS  BXPCRSDT 00000001 BXPC 00000001)
[   1.0000030] ACPI: FACP 0x00000000BFFE1449 000074 (v01 BOCHS  BXPCFACP 00000001 BXPC 00000001)
[   1.0000030] ACPI: DSDT 0x00000000BFFE0040 001409 (v01 BOCHS  BXPCDSDT 00000001 BXPC 00000001)
[   1.0000030] ACPI: FACS 0x00000000BFFE0000 000040
[   1.0000030] ACPI: APIC 0x00000000BFFE14BD 000080 (v01 BOCHS  BXPCAPIC 00000001 BXPC 00000001)
[   1.0000030] ACPI: HPET 0x00000000BFFE153D 000038 (v01 BOCHS  BXPCHPET 00000001 BXPC 00000001)
[   1.0000030] ACPI: 1 ACPI AML tables successfully acquired and loaded
[   1.0000030] ioapic0 at mainbus0 apid 0
[   1.0000030] cpu0 at mainbus0 apid 0
[   1.0000030] cpu0: Intel(R) Xeon(R) Platinum 8167M CPU @ 2.00GHz, id 0x50654
[   1.0000030] cpu0: package 0, core 0, smt 0
[   1.0000030] cpu1 at mainbus0 apid 1
[   1.0000030] cpu1: Intel(R) Xeon(R) Platinum 8167M CPU @ 2.00GHz, id 0x50654
[   1.0000030] cpu1: package 0, core 0, smt 1
[   1.0000030] acpi0 at mainbus0: Intel ACPICA 20191213
[   1.0000030] acpi0: fixed power button present
[   1.0503574] hpet0 at acpi0: high precision event timer (mem 0xfed00000-0xfed00400)
[   1.0622078] pckbc1 at acpi0 (KBD, PNP0303) (kbd port): io 0x60,0x64 irq 1
[   1.0622078] pckbc2 at acpi0 (MOU, PNP0F13) (aux port): irq 12
[   1.0622078] FDC0 (PNP0700) at acpi0 not configured
[   1.0622078] COM1 (PNP0501) at acpi0 not configured
[   1.0622078] qemufwcfg0 at acpi0 (FWCF, QEMU0002): io 0x510-0x51b
[   1.0622078] ACPI: Enabled 2 GPEs in block 00 to 0F
[   1.0622078] pckbd0 at pckbc1 (kbd slot)
[   1.0622078] pckbc1: using irq 1 for kbd slot
[   1.0622078] wskbd0 at pckbd0 mux 1
[   1.0622078] pms0 at pckbc1 (aux slot)
[   1.0622078] pckbc1: using irq 12 for aux slot
[   1.0622078] wsmouse0 at pms0 mux 0
[   1.0622078] pci0 at mainbus0 bus 0: configuration mode 1
[   1.0622078] pchb0 at pci0 dev 0 function 0: Intel 82441FX (PMC) PCI and Memory Controller (rev. 0x02)
[   1.0622078] pcib0 at pci0 dev 1 function 0: Intel 82371SB (PIIX3) PCI-ISA Bridge (rev. 0x00)
[   1.0622078] piixide0 at pci0 dev 1 function 1: Intel 82371SB IDE Interface (PIIX3) (rev. 0x00)
[   1.0622078] piixide0: primary channel interrupting at ioapic0 pin 14
[   1.0622078] atabus0 at piixide0 channel 0
[   1.0622078] piixide0: secondary channel interrupting at ioapic0 pin 15
[   1.0622078] atabus1 at piixide0 channel 1
[   1.0622078] uhci0 at pci0 dev 1 function 2: Intel 82371SB (PIIX3) USB Host Controller (rev. 0x01)
[   1.0622078] uhci0: interrupting at ioapic0 pin 11
[   1.0622078] usb0 at uhci0: USB revision 1.0
[   1.0622078] piixpm0 at pci0 dev 1 function 3: Intel 82371AB (PIIX4) Power Management Controller (rev. 0x03)
[   1.0622078] piixpm0: 24-bit timer
[   1.0622078] piixpm0: interrupting at ioapic0 pin 9
[   1.0622078] iic0 at piixpm0 port 0: I2C bus
[   1.0622078] vga0 at pci0 dev 2 function 0: vendor 1234 product 1111 (rev. 0x02)
[   1.0622078] wsdisplay0 at vga0 kbdmux 1
[   1.0622078] drm at vga0 not configured
[   1.0622078] virtio0 at pci0 dev 3 function 0
[   1.0622078] virtio0: Virtio Network Device (rev. 0x00)
[   1.0622078] vioif0 at virtio0: Features: 0x11070020<INDIRECT_DESC,NOTIFY_ON_EMPTY,CTRL_RX,CTRL_VQ,STATUS,MAC>
[   1.0622078] vioif0: Ethernet address 02:00:17:00:33:23
[   1.0622078] virtio0: config interrupting at msix0 vec 0
[   1.0622078] virtio0: queues interrupting at msix0 vec 1
[   1.0622078] virtio1 at pci0 dev 4 function 0
[   1.0622078] virtio1: Virtio SCSI Device (rev. 0x00)
[   1.0622078] vioscsi0 at virtio1: Features: 0x10000000<INDIRECT_DESC>
[   1.0622078] vioscsi0: cmd_per_lun 128 qsize 128 seg_max 126 max_target 255 max_lun 16383
[   1.0622078] virtio1: config interrupting at msix1 vec 0
[   1.0622078] virtio1: queues interrupting at msix1 vec 1
[   1.0622078] scsibus0 at vioscsi0: 16 targets, 1024 luns per target
[   1.0622078] isa0 at pcib0
[   1.0622078] com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
[   1.0622078] com0: console
[   1.0622078] attimer0 at isa0 port 0x40-0x43
[   1.0622078] pcppi0 at isa0 port 0x61
[   1.0622078] spkr0 at pcppi0: PC Speaker
[   1.0622078] wsbell at spkr0 not configured
[   1.0622078] midi0 at pcppi0: PC speaker
[   1.0622078] sysbeep0 at pcppi0
[   1.0622078] fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
[   1.0622078] attimer0: attached to pcppi0
[   1.0622078] acpicpu0 at cpu0: ACPI CPU
[   1.0622078] acpicpu1 at cpu1: ACPI CPU
[   1.6691518] uhub0 at usb0: NetBSD (0000) UHCI root hub (0000), class 9/0, rev 1.00/1.00, addr 1
[   4.0319889] uhidev0 at uhub0 port 1 configuration 1 interface 0
[   4.0319889] uhidev0: QEMU (0x627) QEMU USB Tablet (0x01), rev 2.00/0.00, addr 2, iclass 3/0
[   4.0427834] ums0 at uhidev0: 3 buttons and Z dir
[   4.0529171] wsmouse1 at ums0 mux 0
[   4.0674155] boot device: <unknown>
[   4.0674155] root device:
[   8.1469334] use one of: vioif0 ddb halt reboot
Oracle Cloudの操作もややこしいので、sd0 at scsipi0の問題に目処がついたら、詳しい操作を書いておきたいと思います、。

No comments:

Post a Comment

ケーブルの脱着できるUSB 3.0ハブ

ケーブルを外せないUSBハブは、どうやってもケーブルが断線してしまって長く使い続けられなかった。 J5 create JUH340 は、 ケーブルが外せるので長持ちしている。セルフパワーUSBハブであるのも良い。 日本で売られているものは、3Aと4AのACアダプターの両方の場合...