Hyper-VにGentoo Linuxをinstallする

基本的にはGentoo Handbook(amd64)のEFI向けのセクションを読んで作ればよいです。
この記事は筆者がWindows 10 Hyper-V上にGentooをinstallする際に躓いたポイントをピックアップしています。

- **追記**
    - 2018/08/02 "5.復帰したときに何かしたい" においてhv_utilsではなくchronyのメッセージを拾うように修正
    - 2018/08/04 "6.ホスト機をcifsマウントする" を追加


## 環境

- Windows 10
- Hyper-V(2nd generation)
- Gentoo Linux

## 1. install mediaが起動しない、キー入力が効かない

Ubuntu Live DVD(ubuntu-18.04.1-desktop-amd64.iso)を利用しました。

Gentoo Linuxの公式にあるminimal install isoはEFIからの起動に対応していません(BIOSのみ)。また、私がinstall時によく使用するSystem Rescue CDはEFI対応しているのですが、Hyper-Vの第2世代で起動するとキー入力ができません。`parted`や`mkfs`等が使えて、Hyper-V関連のmoduleが組み込まれているCD/DVDである必要があります。比較的kernelの新しいメジャーディストリビューションだと問題なく使えると思います。


## 2. kernel nconfig

今回私は`4.17.10-gentoo`を使ってkernelをbuildしました。
以下は[Hyper-V - Gentoo Wiki](https://wiki.gentoo.org/wiki/Hyper-V)の補完です。

### CPU/Memory

Dynamic Memory機能を使う際に必要な機能もチェックしています。

```
Processor type and features ->
  [*] Linux guest support ->
      [*] Enable paravirtualization code
  [*] Allow for memory hot-add
  [*]   Online the newly added memory blocks by default
  [*] EFI runtime service support
```

### ACPI/PCI

Hyper-Vのdevice driverで必要になります。

```
Power management and ACPI options ->
  [*] ACPI (Advanced Configuration and Power Interface) Support
Bus options (PCI etc.) ->
  [*] PCI support
  [*] Message Signaled Interrupts (MSI and MSI-X)
  <*> Hyper-V PCI Frontend
```

### Device Driver

#### SCSI/SATA

ディスク関連です。libataについては配下の項目全部OFFでも動きます。

```
Device Drivers ->
      SCSI device support ->
        [*] SCSI device support
        <*> SCSI disk support
            SCSI Transports ->
              <*> FiberChannel Transport Attributes
        [*] SCSI low-level drivers ->
              <*> Microsoft Hyper-V virtual storage driver
  <*> Serial ATA and Parallel ATA drivers (libata)
```

#### Network

```
Device Drivers ->
  [*] Network device support ->
      <*> Microsoft Hyper-V virtual network driver
```

#### Input

```
Device Drivers ->
  Input device support ->
    [*] Generic input layer (needed for keyboard, mouse, ...)
    <*>   Event interface
    [*]   Keyboards ->
          <*> AT keyboard
    [*]   Mice ->
          <*> PS/2 mouse
        Hardware I/O ports ->
          [*] Serial I/O support
          [*] i8042 PC Keyboard controller
          [*] PS/2 driver library
          <*> Microsoft Synthetic Keyboard driver
  HID support ->
    <*> HID bus support
        Special HID drivers ->
          <*> Microsoft Hyper-V mouse driver
```

#### Clock

PPS support配下のOptionはなしでも問題ないです。

```
Device Drivers ->
  [*] Real Time Clock ->
        <*> PC-style 'CMOS'
  [*] PPS support
      PTP clock support ->
        <*> PTP clock support
```

#### Graphics

X関係は試していません。CUIが表示されます。

```
Device Drivers ->
  Graphics support ->
    Frame buffer Devices ->
      <*> Microsoft Hyper-V Synthetic Video support
```

#### Hyper-V module

```
Device Drivers ->
  <*> Userspace I/O drivers ->
        <*> Generic driver for Hyper-V VMBus
      Microsoft Hyper-V guest support ->
        <*> Microsoft Hyper-V client drivers
        <*> Microsoft Hyper-V Utilities driver
        <*> Microsoft Hyper-V Balloon driver
```

### 3. 時刻同期

使用用途的にそこまで正確な時刻を必要としていない為、**ホストと同期できていれば良い**という設定です。suspendからの復帰後も早い段階で時刻修正されます。

#### chronyのinstall

```
 # emerge chrony
```

#### /etc/chrony/chrony.conf

Hyper-V上のLinuxはhardware clockを`/dev/ptp0`として提供しているので、それを元にchronyにsystem clockを同期させます。

```
refclock PHC /dev/ptp0 trust poll 2
driftfile /var/lib/chrony/drift
makestep 1 -1
```

poll 2は2^2(4)秒の間隔でpollするという設定です。デフォルトだと4で2^4(16)秒です。

### 4. Dynamic Memoryについて

メモリが必要になった段階で`hv_balloon`がメモリをホストOSから持ってきます。なので起動時は512MB程度のメモリでもOKです。Clang等をコンパイルしていると4GB程度に膨れ上がります。

一旦取得したメモリは使わなくなった段階で解放されます。しかし、ゲストOSから見ると`hv_balloon`が大量にメモリを使用しているように見えます。というのもこれは`hv_balloon`がメモリのhot removeに対応していないためです。今後、対応されるかもしれませんしされないかもしれませんが、現段階ではこういう挙動のようです。

### 5. 復帰時に何かしたい

復帰時にchronyが以下のようなメッセージを出力するので、それを拾ってスクリプトを走らせることができると思います。

```
chronyd[2084]: Can't synchronise: no selectable sources
```

例えば`syslog-ng`はログ出力をスクリプトに渡すことができるので、一致するログが現れたら`hogehoge`するみたいなスクリプトを作って噛ませておくことで実現可能です。

#### (例) /etc/syslog-ng/resume.sh

```.bash
#!/bin/bash

while read line
do
    # TODO: 実行したい処理を書く
done
```

#### (例) /etc/syslog-ng/syslog-ng.conf

filterでkernelメッセージのみにしています。

```.conf
source src           { system(); internal(); };
filter f_resume      { message("Can't synchronise: no selectable sources"); };
destination d_resume { program("/etc/syslog-ng/resume.sh"); };
log { source(src); filter(f_resume); destination(d_resume); };
```

### 6. ホスト機をcifsマウントする

基本的に実機と変わりません。

#### kernel option

ホスト機がWindows10なので、SMB3.1.1を有効にしています。

```
File systems ->
  [*] Network File Systems ->
    <*> SMB3 and CIFS support (advanced network filesystem)
    [*]   CIFS extended attributes
    [*]   SMB3.1.1 network file system support
```

#### cifs-utilsのinstall

```
 # emerge cifs-utils
```

#### /etc/fstab

`uid`,`gid`については最初に作ったuserのidを指定しています。また、resumeから復帰した際、再接続に120秒かかる為、それを短縮するよう`echo_interval=10`を追加しています。(20秒程度で再接続を行います)

```
//192.168.0.1/Users/stkchp /home/stkchp/winhome cifs  uid=1000,gid=1000,rw,vers=3.1.1,credentials=/etc/cifs-creds,echo_interval=10 0 0
```

#### /etc/cifs-creds

microsoftアカウントを使用する際、domainはホスト名でOKです。`chmod 600`しておきます。

```
username=example@hotmail.com
password=xxxxxxxx
domain=DESKTOP-HOST
```

### X. dmesg(参考)

`PCI: Fatal: No config space access function found` と出ていますが、問題ないです。

```
[    0.000000] Linux version 4.17.10-gentoo (root@gentoo) (gcc version 7.3.0 (Gentoo 7.3.0-r3 p1.4)) #22 SMP Mon Jul 30 10:15:45 JST 2018
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.17.10-gentoo root=/dev/sda4 ro
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000c0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001eee8fff] usable
[    0.000000] BIOS-e820: [mem 0x000000001eee9000-0x000000001eef1fff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000001eef2000-0x000000001ef1afff] reserved
[    0.000000] BIOS-e820: [mem 0x000000001ef1b000-0x000000001ff9afff] usable
[    0.000000] BIOS-e820: [mem 0x000000001ff9b000-0x000000001ffb6fff] reserved
[    0.000000] BIOS-e820: [mem 0x000000001ffb7000-0x000000001ffb8fff] type 20
[    0.000000] BIOS-e820: [mem 0x000000001ffb9000-0x000000001ffbafff] reserved
[    0.000000] BIOS-e820: [mem 0x000000001ffbb000-0x000000001ffbbfff] type 20
[    0.000000] BIOS-e820: [mem 0x000000001ffbc000-0x000000001ffbdfff] reserved
[    0.000000] BIOS-e820: [mem 0x000000001ffbe000-0x000000001ffbefff] type 20
[    0.000000] BIOS-e820: [mem 0x000000001ffbf000-0x000000001ffc0fff] reserved
[    0.000000] BIOS-e820: [mem 0x000000001ffc1000-0x000000001ffc1fff] type 20
[    0.000000] BIOS-e820: [mem 0x000000001ffc2000-0x000000001ffc3fff] reserved
[    0.000000] BIOS-e820: [mem 0x000000001ffc4000-0x000000001ffc5fff] type 20
[    0.000000] BIOS-e820: [mem 0x000000001ffc6000-0x000000001ffc7fff] reserved
[    0.000000] BIOS-e820: [mem 0x000000001ffc8000-0x000000001ffc8fff] type 20
[    0.000000] BIOS-e820: [mem 0x000000001ffc9000-0x000000001fff2fff] reserved
[    0.000000] BIOS-e820: [mem 0x000000001fff3000-0x000000001fffafff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000001fffb000-0x000000001fffefff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000001ffff000-0x000000001fffffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] efi: EFI v2.50 by Microsoft
[    0.000000] efi:  ACPI=0x1fffa000  ACPI 2.0=0x1fffa014  SMBIOS=0x1ffd8000  SMBIOS 3.0=0x1ffd6000  PROP=0x42d0470  MEMATTR=0x1f54fa98
[    0.000000] SMBIOS 3.1.0 present.
[    0.000000] DMI: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v3.0 03/02/2018
[    0.000000] Hypervisor detected: Microsoft Hyper-V
[    0.000000] Hyper-V: features 0x2e7f, hints 0x22c2c
[    0.000000] Hyper-V Host Build:17134-10.0-0-0.191
[    0.000000] Hyper-V: LAPIC Timer Frequency: 0x1e8480
[    0.000000] tsc: Marking TSC unstable due to running on Hyper-V
[    0.000000] Hyper-V: Using ext hypercall for remote TLB flush
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] e820: last_pfn = 0x20000 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-FFFFF uncachable
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 000000000 mask F00000000 write-back
[    0.000000]   1 disabled
[    0.000000]   2 disabled
[    0.000000]   3 disabled
[    0.000000]   4 disabled
[    0.000000]   5 disabled
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WP  UC- WT
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] Base memory trampoline at [        (ptrval)] 99000 size 24576
[    0.000000] BRK [0x10ce4000, 0x10ce4fff] PGTABLE
[    0.000000] BRK [0x10ce5000, 0x10ce5fff] PGTABLE
[    0.000000] BRK [0x10ce6000, 0x10ce6fff] PGTABLE
[    0.000000] BRK [0x10ce7000, 0x10ce7fff] PGTABLE
[    0.000000] BRK [0x10ce8000, 0x10ce8fff] PGTABLE
[    0.000000] Secure boot could not be determined
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x000000001FFFA014 000024 (v02 VRTUAL)
[    0.000000] ACPI: XSDT 0x000000001FFF90E8 00006C (v01 VRTUAL MICROSFT 00000001 MSFT 00000001)
[    0.000000] ACPI: FACP 0x000000001FFF7000 000114 (v06 VRTUAL MICROSFT 00000001 MSFT 00000001)
[    0.000000] ACPI: DSDT 0x000000001EEEC000 005C39 (v02 MSFTVM DSDT01   00000001 MSFT 05000000)
[    0.000000] ACPI: FACS 0x000000001FFFE000 000040
[    0.000000] ACPI: APIC 0x000000001FFF8000 0007D2 (v02 VRTUAL MICROSFT 00000001 MSFT 00000001)
[    0.000000] ACPI: OEM0 0x000000001FFF6000 000064 (v01 VRTUAL MICROSFT 00000001 MSFT 00000001)
[    0.000000] ACPI: WAET 0x000000001FFF5000 000028 (v01 VRTUAL MICROSFT 00000001 MSFT 00000001)
[    0.000000] ACPI: OEM4 0x000000001FFF4000 000280 (v02 MSFTVM VBAT     00000001 MSFT 05000000)
[    0.000000] ACPI: OEM1 0x000000001FFF3000 00009E (v02 MSFTVM UARTS    00000001 MSFT 05000000)
[    0.000000] ACPI: OEM2 0x000000001EEEB000 0002E2 (v02 MSFTVM VTPM2    00000001 MSFT 05000000)
[    0.000000] ACPI: SRAT 0x000000001EEEA000 0001B0 (v02 VRTUAL MICROSFT 00000001 MSFT 00000001)
[    0.000000] ACPI: BGRT 0x000000001EEE9000 000038 (v01 VRTUAL MICROSFT 00000001 MSFT 00000001)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] SRAT: PXM 0 -> APIC 0x00 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x01 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x02 -> Node 0
[    0.000000] SRAT: PXM 0 -> APIC 0x03 -> Node 0
[    0.000000] ACPI: SRAT: Node 0 PXM 0 [mem 0x00000000-0x1fffffff] hotplug
[    0.000000] ACPI: SRAT: Node 0 PXM 0 [mem 0x20200000-0xf7ffffff] hotplug
[    0.000000] ACPI: SRAT: Node 0 PXM 0 [mem 0x100000000-0xfdfffffff] hotplug
[    0.000000] ACPI: SRAT: Node 0 PXM 0 [mem 0x1000000000-0xffffffffff] hotplug
[    0.000000] ACPI: SRAT: Node 0 PXM 0 [mem 0x10000200000-0x1ffffffffff] hotplug
[    0.000000] ACPI: SRAT: Node 0 PXM 0 [mem 0x20000200000-0x3ffffffffff] hotplug
[    0.000000] ACPI: SRAT: Node 0 PXM 0 [mem 0x40000200000-0x7ffffffffff] hotplug
[    0.000000] ACPI: SRAT: Node 0 PXM 0 [mem 0x80000200000-0xfffffffffff] hotplug
[    0.000000] NODE_DATA(0) allocated [mem 0x1fe6c000-0x1fe6ffff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x000000001fffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x000000000009ffff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x000000001eee8fff]
[    0.000000]   node   0: [mem 0x000000001ef1b000-0x000000001ff9afff]
[    0.000000]   node   0: [mem 0x000000001ffff000-0x000000001fffffff]
[    0.000000] Reserved but unavailable: 247 pages
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000001fffffff]
[    0.000000] On node 0 totalpages: 130825
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 832 pages reserved
[    0.000000]   DMA zone: 3999 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 1984 pages used for memmap
[    0.000000]   DMA32 zone: 126826 pages, LIFO batch:31
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1])
[    0.000000] IOAPIC[0]: apic_id 4, version 17, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] smpboot: Allowing 4 CPUs, 0 hotplug CPUs
[    0.000000] e820: [mem 0x20000000-0xffffffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.000000] random: get_random_bytes called from start_kernel+0x8f/0x450 with crng_init=0
[    0.000000] setup_percpu: NR_CPUS:64 nr_cpumask_bits:64 nr_cpu_ids:4 nr_node_ids:1
[    0.000000] percpu: Embedded 42 pages/cpu @        (ptrval) s134488 r8192 d29352 u524288
[    0.000000] pcpu-alloc: s134488 r8192 d29352 u524288 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 127945
[    0.000000] Policy zone: DMA32
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-4.17.10-gentoo root=/dev/sda4 ro
[    0.000000] Memory: 424624K/523300K available (8204K kernel code, 850K rwdata, 1984K rodata, 1116K init, 540K bss, 98676K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Kernel/User page tables isolation: enabled
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU event tracing is enabled.
[    0.000000]  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=4.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] Using NULL legacy PIC
[    0.000000] NR_IRQS: 4352, nr_irqs: 456, preallocated irqs: 0
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] ACPI: Core revision 20180313
[    0.000000] Failed to register legacy timer interrupt
[    0.000000] APIC: Switch to symmetric I/O mode setup
[    0.000000] clocksource: hyperv_clocksource_tsc_page: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns
[    0.000000] tsc: Detected 1895.692 MHz processor
[    0.000012] Calibrating delay loop (skipped), value calculated using timer frequency.. 3791.38 BogoMIPS (lpj=18956920)
[    0.000017] pid_max: default: 32768 minimum: 301
[    0.000540] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.000604] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.000612] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
[    0.000618] Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes)
[    0.000847] CPU: Physical Processor ID: 0
[    0.000850] CPU: Processor Core ID: 0
[    0.001034] mce: CPU supports 1 MCE banks
[    0.001066] Last level iTLB entries: 4KB 512, 2MB 8, 4MB 8
[    0.001069] Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32, 1GB 0
[    0.001072] Spectre V2 : Mitigation: Full generic retpoline
[    0.001076] Speculative Store Bypass: Vulnerable
[    0.001193] Freeing SMP alternatives memory: 24K
[    0.002480] smpboot: CPU0: Intel(R) Core(TM) i3-3227U CPU @ 1.90GHz (family: 0x6, model: 0x3a, stepping: 0x9)
[    0.002573] Performance Events: unsupported p6 CPU model 58 no PMU driver, software events only.
[    0.002619] Hierarchical SRCU implementation.
[    0.002739] smp: Bringing up secondary CPUs ...
[    0.002831] x86: Booting SMP configuration:
[    0.002834] .... node  #0, CPUs:      #1 #2 #3
[    0.007393] smp: Brought up 1 node, 4 CPUs
[    0.007393] smpboot: Max logical packages: 1
[    0.007393] smpboot: Total of 4 processors activated (15165.53 BogoMIPS)
[    0.007393] devtmpfs: initialized
[    0.007393] x86/mm: Memory block size: 128MB
[    0.007393] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.007393] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.007393] kworker/u8:0 (31) used greatest stack depth: 14136 bytes left
[    0.007393] NET: Registered protocol family 16
[    0.007393] audit: initializing netlink subsys (disabled)
[    0.007393] audit: type=2000 audit(1533008423.000:1): state=initialized audit_enabled=0 res=1
[    0.007393] cpuidle: using governor menu
[    0.007393] ACPI: bus type PCI registered
[    0.007393] PCI: Fatal: No config space access function found
[    0.012171] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.012339] ACPI: Added _OSI(Module Device)
[    0.012339] ACPI: Added _OSI(Processor Device)
[    0.012339] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.012339] ACPI: Added _OSI(Processor Aggregator Device)
[    0.012339] ACPI: Added _OSI(Linux-Dell-Video)
[    0.012339] ACPI: 1 ACPI AML tables successfully acquired and loaded
[    0.012496] ACPI: Dynamic OEM Table Load:
[    0.012529] ACPI: Interpreter enabled
[    0.012529] ACPI: (supports S0 S5)
[    0.012529] ACPI: Using IOAPIC for interrupt routing
[    0.012529] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.012529] ACPI: Enabled 1 GPEs in block 00 to 0F
[    0.045516] vgaarb: loaded
[    0.045516] SCSI subsystem initialized
[    0.045516] libata version 3.00 loaded.
[    0.045516] pps_core: LinuxPPS API ver. 1 registered
[    0.045516] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.045516] PTP clock support registered
[    0.045516] Registered efivars operations
[    0.050155] hv_vmbus: Vmbus version:4.0
[    0.050155] PCI: Using ACPI for IRQ routing
[    0.050155] PCI: System does not support PCI
[    0.052059] clocksource: Switched to clocksource hyperv_clocksource_tsc_page
[    0.075244] pnp: PnP ACPI init
[    0.075400] pnp 00:00: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.075454] pnp 00:01: Plug and Play ACPI device, IDs PNP0501 (active)
[    0.075519] pnp 00:02: Plug and Play ACPI device, IDs PNP0501 (active)
[    0.075524] pnp: PnP ACPI: found 3 devices
[    0.080098] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[    0.080139] NET: Registered protocol family 2
[    0.080262] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes)
[    0.080283] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[    0.080295] TCP bind hash table entries: 4096 (order: 4, 65536 bytes)
[    0.080307] TCP: Hash tables configured (established 4096 bind 4096)
[    0.080332] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.080338] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.080372] NET: Registered protocol family 1
[    0.080379] PCI: CLS 0 bytes, default 64
[    0.080392] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    0.080398] software IO TLB [mem 0x1a600000-0x1e600000] (64MB) mapped at [        (ptrval)-        (ptrval)]
[    0.080877] RAPL PMU: API unit is 2^-32 Joules, 3 fixed counters, 10737418240 ms ovfl timer
[    0.080882] RAPL PMU: hw unit of domain pp0-core 2^-0 Joules
[    0.080885] RAPL PMU: hw unit of domain package 2^-0 Joules
[    0.080887] RAPL PMU: hw unit of domain pp1-gpu 2^-0 Joules
[    0.082765] Scanning for low memory corruption every 60 seconds
[    0.083564] workingset: timestamp_bits=56 max_order=17 bucket_order=0
[    0.093143] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.093151] io scheduler noop registered (default)
[    0.093518] hv_vmbus: registering driver hv_pci
[    0.093713] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.126858] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    0.160161] 00:02: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
[    0.160927] Non-volatile memory driver v1.3
[    0.161027] kworker/u8:0 (789) used greatest stack depth: 14104 bytes left
[    0.161108] hv_vmbus: registering driver hyperv_fb
[    0.161748] hyperv_fb: Screen resolution: 1152x864, Color depth: 32
[    0.214759] Console: switching to colour frame buffer device 144x54
[    0.270675] loop: module loaded
[    0.270994] hv_vmbus: registering driver hv_storvsc
[    0.273645] scsi host0: storvsc_host_t
[    0.274259] scsi 0:0:0:0: Direct-Access     Msft     Virtual Disk     1.0  PQ: 0 ANSI: 5
[    0.275678] scsi 0:0:0:1: CD-ROM            Msft     Virtual DVD-ROM  1.0  PQ: 0 ANSI: 0
[    0.280659] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    0.281251] scsi 0:0:0:1: Attached scsi generic sg1 type 5
[    0.281722] hv_vmbus: registering driver hv_netvsc
[    0.281757] sd 0:0:0:0: [sda] 67108864 512-byte logical blocks: (34.4 GB/32.0 GiB)
[    0.282752] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    0.283461] sd 0:0:0:0: [sda] Write Protect is off
[    0.283833] sd 0:0:0:0: [sda] Mode Sense: 0f 00 00 00
[    0.284204] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    0.295421]  sda: sda1 sda2 sda3 sda4
[    0.298563] sd 0:0:0:0: [sda] Attached SCSI disk
[    0.299586] hv_vmbus: registering driver uio_hv_generic
[    0.300149] i8042: PNP: No PS/2 controller found.
[    0.300511] hv_vmbus: registering driver hyperv_keyboard
[    0.301962] rtc_cmos 00:00: RTC can wake from S4
[    0.305738] input: AT Translated Set 2 keyboard as /devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/VMBUS:00/d34b2567-b9b6-42b9-8778-0a4ec0b955bf/serio0/input/input0
[    0.305743] rtc_cmos 00:00: registered as rtc0
[    0.307290] rtc_cmos 00:00: alarms up to one month, 114 bytes nvram
[    0.308119] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com
[    0.308864] hidraw: raw HID events driver (C) Jiri Kosina
[    0.309297] hv_vmbus: registering driver hid_hyperv
[    0.310441] input: Microsoft Vmbus HID-compliant Mouse as /devices/0006:045E:0621.0001/input/input1
[    0.311321] hid 0006:045E:0621.0001: input: <UNKNOWN> HID v0.01 Mouse [Microsoft Vmbus HID-compliant Mouse] on
[    0.312143] hv_utils: Registering HyperV Utility Driver
[    0.312541] hv_vmbus: registering driver hv_util
[    0.334068] hv_utils: FCopy IC version 1.1
[    0.355189] hv_utils: Heartbeat IC version 3.0
[    0.376234] hv_utils: Shutdown IC version 3.0
[    0.397132] hv_utils: TimeSync IC version 4.0
[    0.418598] hv_utils: VSS IC version 5.0
[    0.440729] hv_vmbus: registering driver hv_balloon
[    0.462358] hv_balloon: Using Dynamic Memory protocol version 2.0
[    0.488946] Initializing XFRM netlink socket
[    0.512753] NET: Registered protocol family 10
[    0.530053] random: fast init done
[    0.550528] Segment Routing with IPv6
[    0.598774] NET: Registered protocol family 17
[    0.623244] hv_vmbus: registering driver hv_sock
[    0.646371] NET: Registered protocol family 40
[    0.670840] registered taskstats version 1
[    0.690526] console [netcon0] enabled
[    0.709576] netconsole: network logging started
[    0.728564] Unstable clock detected, switching default tracing clock to "global"
               If you want to keep using the local clock, then add:
                 "trace_clock=local"
               on the kernel command line
[    0.810556] EXT4-fs (sda4): mounted filesystem with ordered data mode. Opts: (null)
[    0.829546] VFS: Mounted root (ext4 filesystem) readonly on device 8:4.
[    0.850739] devtmpfs: mounted
[    0.871662] Freeing unused kernel memory: 1116K
[    0.930158] Write protecting the kernel read-only data: 12288k
[    0.953679] Freeing unused kernel memory: 2016K
[    0.974450] Freeing unused kernel memory: 64K
[    1.107782] loadkeys (953) used greatest stack depth: 13304 bytes left
[    1.970986] openrc-run.sh (1101) used greatest stack depth: 13256 bytes left
[    2.327220] udevd[1291]: starting version 3.2.5
[    2.334154] random: udevd: uninitialized urandom read (16 bytes read)
[    2.334786] random: udevd: uninitialized urandom read (16 bytes read)
[    2.334801] random: udevd: uninitialized urandom read (16 bytes read)
[    2.343811] udevd[1292]: starting eudev-3.2.5
[    3.819290] urandom_read: 3 callbacks suppressed
[    3.819292] random: udevd: uninitialized urandom read (16 bytes read)
[    3.819317] random: udevd: uninitialized urandom read (16 bytes read)
[    3.887350] EXT4-fs (sda4): re-mounted. Opts: (null)
```

## まとめ

今のところ普通に使えています。使っていくうちに問題にぶち当たったら追記します。