この記事は、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で起動ディスクパーティションをブートローダーが認識するのが良い
- 暗号化されていてはいけない
- シリアルコンソールが有効になっていると便利
$ 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 rebootOracle Cloudの操作もややこしいので、
sd0 at scsipi0
の問題に目処がついたら、詳しい操作を書いておきたいと思います、。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。