Quantcast
Channel: ソフトウェア – What I Know ~ワッタイナ
Viewing all 96 articles
Browse latest View live

HAProxy のビルドオプションを確認してみる(2020/11版)

$
0
0

以前 HAProxy 1.8 をビルドしたことがあるのですが、最新の LTS 版の 2.2 をビルドしようとしたところ、ビルドオプションが一部変わっているようでした。

ディストリビューション標準の HAProxy のビルドオプションを確認してみました。

Fedora 33:HAProxy 2.2

# haproxy -vv
HA-Proxy version 2.2.4-de45672 2020/09/30 - https://haproxy.org/
Status: long-term supported branch - will stop receiving fixes around Q2 2025.
Known bugs: http://www.haproxy.org/bugs/bugs-2.2.4.html
Build options :
  TARGET  = linux-glibc
  CPU     = generic
  CC      = gcc
  CFLAGS  = -O2 -g -Wall -Wextra -Wdeclaration-after-statement -fwrapv -Wno-address-of-packed-member -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered -Wno-missing-field-initializers -Wno-stringop-overflow -Wno-cast-function-type -Wtype-limits -Wshift-negative-value -Wshift-overflow=2 -Wduplicated-cond -Wnull-dereference
  OPTIONS = USE_PCRE2=1 USE_LINUX_TPROXY=1 USE_CRYPT_H=1 USE_GETADDRINFO=1 USE_OPENSSL=1 USE_LUA=1 USE_ZLIB=1 USE_SYSTEMD=1

Feature list : +EPOLL -KQUEUE +NETFILTER -PCRE -PCRE_JIT +PCRE2 -PCRE2_JIT +POLL -PRIVATE_CACHE +THREAD -PTHREAD_PSHARED +BACKTRACE -STATIC_PCRE -STATIC_PCRE2 +TPROXY +LINUX_TPROXY +LINUX_SPLICE +LIBCRYPT +CRYPT_H +GETADDRINFO +OPENSSL +LUA +FUTEX +ACCEPT4 +ZLIB -SLZ +CPU_AFFINITY +TFO +NS +DL +RT -DEVICEATLAS -51DEGREES -WURFL +SYSTEMD -OBSOLETE_LINKER +PRCTL +THREAD_DUMP -EVPORTS

Default settings :
  bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Built with multi-threading support (MAX_THREADS=64, default=2).
Built with OpenSSL version : OpenSSL 1.1.1g FIPS  21 Apr 2020
Running on OpenSSL version : OpenSSL 1.1.1g FIPS  21 Apr 2020
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3
Built with Lua version : Lua 5.4.0
Built with network namespace support.
Built with zlib version : 1.2.11
Running on zlib version : 1.2.11
Compression algorithms supported : identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND
Built with PCRE2 version : 10.35 2020-05-09
PCRE2 library supports JIT : no (USE_PCRE2_JIT not set)
Encrypted password support via crypt(3): yes
Built with gcc compiler version 10.2.1 20200826 (Red Hat 10.2.1-3)
Built with the Prometheus exporter as a service

Available polling systems :
      epoll : pref=300,  test result OK
       poll : pref=200,  test result OK
     select : pref=150,  test result OK
Total: 3 (3 usable), will use epoll.

Available multiplexer protocols :
(protocols marked as <default> cannot be specified using 'proto' keyword)
            fcgi : mode=HTTP       side=BE        mux=FCGI
       <default> : mode=HTTP       side=FE|BE     mux=H1
              h2 : mode=HTTP       side=FE|BE     mux=H2
       <default> : mode=TCP        side=FE|BE     mux=PASS

Available services :
        prometheus-exporter

Available filters :
        [SPOE] spoe
        [COMP] compression
        [TRACE] trace
        [CACHE] cache
        [FCGI] fcgi-app

# cat /etc/redhat-release
Fedora release 33 (Thirty Three)

Ubuntu 20.04:HAProxy 2.0

# haproxy -vv
HA-Proxy version 2.0.13-2ubuntu0.1 2020/09/08 - https://haproxy.org/
Build options :
  TARGET  = linux-glibc
  CPU     = generic
  CC      = gcc
  CFLAGS  = -O2 -g -O2 -fdebug-prefix-map=/build/haproxy-YpuVzL/haproxy-2.0.13=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -Wno-address-of-packed-member -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter -Wno-old-style-declaration -Wno-ignored-qualifiers -Wno-clobbered -Wno-missing-field-initializers -Wno-implicit-fallthrough -Wno-stringop-overflow -Wno-cast-function-type -Wtype-limits -Wshift-negative-value -Wshift-overflow=2 -Wduplicated-cond -Wnull-dereference
  OPTIONS = USE_PCRE2=1 USE_PCRE2_JIT=1 USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 USE_ZLIB=1 USE_SYSTEMD=1

Feature list : +EPOLL -KQUEUE -MY_EPOLL -MY_SPLICE +NETFILTER -PCRE -PCRE_JIT +PCRE2 +PCRE2_JIT +POLL -PRIVATE_CACHE +THREAD -PTHREAD_PSHARED +REGPARM -STATIC_PCRE -STATIC_PCRE2 +TPROXY +LINUX_TPROXY +LINUX_SPLICE +LIBCRYPT +CRYPT_H -VSYSCALL +GETADDRINFO +OPENSSL +LUA +FUTEX +ACCEPT4 -MY_ACCEPT4 +ZLIB -SLZ +CPU_AFFINITY +TFO +NS +DL +RT -DEVICEATLAS -51DEGREES -WURFL +SYSTEMD -OBSOLETE_LINKER +PRCTL +THREAD_DUMP -EVPORTS

Default settings :
  bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Built with multi-threading support (MAX_THREADS=64, default=2).
Built with OpenSSL version : OpenSSL 1.1.1f  31 Mar 2020
Running on OpenSSL version : OpenSSL 1.1.1f  31 Mar 2020
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3
Built with Lua version : Lua 5.3.3
Built with network namespace support.
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND
Built with zlib version : 1.2.11
Running on zlib version : 1.2.11
Compression algorithms supported : identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
Built with PCRE2 version : 10.34 2019-11-21
PCRE2 library supports JIT : yes
Encrypted password support via crypt(3): yes
Built with the Prometheus exporter as a service

Available polling systems :
      epoll : pref=300,  test result OK
       poll : pref=200,  test result OK
     select : pref=150,  test result OK
Total: 3 (3 usable), will use epoll.

Available multiplexer protocols :
(protocols marked as <default> cannot be specified using 'proto' keyword)
              h2 : mode=HTX        side=FE|BE     mux=H2
              h2 : mode=HTTP       side=FE        mux=H2
       <default> : mode=HTX        side=FE|BE     mux=H1
       <default> : mode=TCP|HTTP   side=FE|BE     mux=PASS

Available services :
        prometheus-exporter

Available filters :
        [SPOE] spoe
        [COMP] compression
        [CACHE] cache
        [TRACE] trace

# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"

CentOS 8:HAProxy 1.8

ここからは、1.8 系となります。

以前は TARGET = linux-glibc ではなく、linux2628 となっていました。

# haproxy -vv
HA-Proxy version 1.8.23 2019/11/25
Copyright 2000-2019 Willy Tarreau <willy@haproxy.org>

Build options :
  TARGET  = linux2628
  CPU     = generic
  CC      = gcc
  CFLAGS  = -O2 -g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -Wno-format-truncation -Wno-null-dereference -Wno-unused-label -Wno-stringop-overflow
  OPTIONS = USE_LINUX_TPROXY=1 USE_CRYPT_H=1 USE_GETADDRINFO=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 USE_SYSTEMD=1 USE_PCRE=1

Default settings :
  maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Built with OpenSSL version : OpenSSL 1.1.1c FIPS  28 May 2019
Running on OpenSSL version : OpenSSL 1.1.1c FIPS  28 May 2019
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3
Built with Lua version : Lua 5.3.4
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND
Encrypted password support via crypt(3): yes
Built with multi-threading support.
Built with PCRE version : 8.42 2018-03-20
Running on PCRE version : 8.42 2018-03-20
PCRE library supports JIT : no (USE_PCRE_JIT not set)
Built with zlib version : 1.2.11
Running on zlib version : 1.2.11
Compression algorithms supported : identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
Built with network namespace support.

Available polling systems :
      epoll : pref=300,  test result OK
       poll : pref=200,  test result OK
     select : pref=150,  test result OK
Total: 3 (3 usable), will use epoll.

Available filters :
        [SPOE] spoe
        [COMP] compression
        [TRACE] trace

# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)

CentOS 7:HAProxy 1.5

このバージョンでは Lua がサポートされていません。

Lua とはスクリプト言語で、バックエンドを制御できるようです。
自分の場合 Lua は使用していないので、最新の HAProxy でビルドする際も入れなくてよいですが、使用している方は注意しておいた方が良さそうです。

# haproxy -vv
HA-Proxy version 1.5.18 2016/05/10
Copyright 2000-2016 Willy Tarreau <willy@haproxy.org>

Build options :
  TARGET  = linux2628
  CPU     = generic
  CC      = gcc
  CFLAGS  = -O2 -g -fno-strict-aliasing -DTCP_USER_TIMEOUT=18
  OPTIONS = USE_LINUX_TPROXY=1 USE_GETADDRINFO=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_PCRE=1

Default settings :
  maxconn = 2000, bufsize = 16384, maxrewrite = 8192, maxpollevents = 200

Encrypted password support via crypt(3): yes
Built with zlib version : 1.2.7
Compression algorithms supported : identity, deflate, gzip
Built with OpenSSL version : OpenSSL 1.0.2k-fips  26 Jan 2017
Running on OpenSSL version : OpenSSL 1.0.2k-fips  26 Jan 2017
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports prefer-server-ciphers : yes
Built with PCRE version : 8.32 2012-11-30
PCRE library supports JIT : no (USE_PCRE_JIT not set)
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND

Available polling systems :
      epoll : pref=300,  test result OK
       poll : pref=200,  test result OK
     select : pref=150,  test result OK
Total: 3 (3 usable), will use epoll.

# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

Zabbix Agent 2 の Windows MSI 版がリリースされたので試してみる(5.0.4 / 5.2)

$
0
0

この記事は Zabbix Advent Calendar 2020 の5日目の記事です。

最近のバージョンでは、新しく Go 言語で書かれた Zabbix Agent 2 も利用できるようになっています。

もともと Linux 専用でしたが、Zabbix バージョン 5.0 から、Windows でサポートされるようになりました。

といっても、最初は自分でビルドする必要がありました。

Windows 版 Zabbix Agent 2 のバージョン履歴

Zabbix ダウンロードページで確認すると、下記のようです。

  • Zabbix 5.0.0(2020/5/11):Windows 版リリース、ビルドする必要があり
  • Zabbix 5.0.1(2020/5/25):アーカイブ版のリリース
  • Zabbix 5.0.4(2020/9/28):サービス起動に対応、MSI パッケージがリリース
  • Zabbix 5.2.0(2020/10/26):5.2 系は最初から MSI パッケージがリリース

以前、Agent 2 について紹介した際は、5.0.3 であり、インストーラ・サービスには対応していないため手作業でインストール・自動起動する設定を行う必要がありました。

今回の記事では、5.2.1 の MSI パッケージをインストールして動作確認してみます。

MSI パッケージ版をインストール

Zabbix ダウンロードページ からダウンロードします。

画面に従って進めていきます。

インストーラ版なので、この画面で zabbix_agent2.conf のホスト名や Zabbix サーバーの設定も可能です。

デフォルトのインストールパスは C:\Program Files\Zabbix Agent 2 のようです。

インストールが完了しました。

動作確認

正しくサービスとして登録されたことを確認しました。

コマンドラインオプション

zabbix_agent2.exe –help で得られるヘルプにも、サービス関連のオプションが追加されていました。

  -d    Uninstall Zabbix agent 2 from service (shorthand)
  -i    Install Zabbix agent 2 as service (shorthand)
  -install
        Install Zabbix agent 2 as service
  -m    For -i -d -s -x functions service name will
        include Hostname parameter specified in
        configuration file (shorthand)
  -multiple-agents
        For -i -d -s -x functions service name will
        include Hostname parameter specified in
        configuration file
  -s    Start Zabbix agent 2 service (shorthand)
  -start
        Start Zabbix agent 2 service
  -stop
        Stop Zabbix agent 2 service
  -uninstall
        Uninstall Zabbix agent 2 from service
  -x    Stop Zabbix agent 2 service (shorthand)

まとめ

Zabbix 5.0.4 以降、Zabbix 5.2 以降では Windows 版の Zabbix Agent 2 も、従来の Zabbix Agent と同様の手順でインストールできることを確認しました。

ログ容量を削減しつつ Splunk の perfmon で Windows パフォーマンスモニタを取り込んでみる

$
0
0

Splunk Advent Calendar 2020 6日目の記事です。

Splunk で Windows のパフォーマンスモニタを取り込むには perfmon を使用しますが、日本語での情報があまりなく、また inputs.conf のデフォルト設定を変更することで、Splunk でログを取り込むのには必ず考えなければならないログ容量の削減ができたので紹介します。

環境

  • Splunk 8.1.0
  • Windows Server 2019

の環境でテストしましたが、バージョンが違ってもほぼ同じかと思います。

ログの取り込み設定の比較

デフォルト設定

まずは公式ドキュメントに書かれているものをほぼそのまま設定してみます。

[perfmon://PhysicalDisk]
interval = 60
object = PhysicalDisk
counters = Disk Bytes/sec; % Disk Read Time; % Disk Write Time; % Disk Time
instances = *
disabled = 0
  • 60秒に一回
  • 物理ディスクの
  • Disk Bytes/sec; % Disk Read Time; % Disk Write Time; % Disk Time を
  • 全てのディスクに対して取り込む

設定となります。

これを取り込むと下記になります。

テキストで記載すると下記の通り。

12/05/2020 22:15:17.928 +0900
collection=PhysicalDisk
object=PhysicalDisk
counter="% Disk Time"
instance=_Total
Value=0.374277675648681

このように、一個一個の測定値がそれぞれ別のイベントになります。

わかりやすいですが、容量面を考えるともう少し考えたいところです。

一つのイベントにまとめる multikv

公式ドキュメントを見ると、mode というのがあります。

ハイパフォーマンスと書かれているので一見関係ないように見えますが、

mode = multikv

のように設定すると、下記になります。

0_C:	3264449.2992193885	1.0517936574275712	0.3236895359068479	1.3754831933344192	

一つにまとめられました。

生ログだけでは扱いは難しいですが、画面のように正しくフィールドも抽出できているので、サーチも問題ありません。

浮動小数点 formatString

カウンタの種類によっては、そこまでの精度が必要ないこともあると思います。

デフォルトでは、%.20g で20桁となりますので、

formatString = %.4g

のように設定すると、下記になります。

0_C:	4.972e+05	0.09209	0.4078	0.4998	

今回は、単位が Bytes/sec のものと、%のものを同時に取り込みましたが、たとえば全て%であれば、小数第三位(0.1%)までといった設定を行うなど、最適なものを選択されてはと思います。

まとめ

Splunk の perfmon で Windows のパフォーマンスカウンタを取り込んでみました。

  • multikv で一つにまとめ
  • formatString で桁を削る

ことにより、Splunk で考えなければならないログ容量を削減できることを確認しました。

dnf に対応した OS で http のレポジトリの Cobbler reposync が失敗する場合

$
0
0

Linux のインストールの簡略化のため、Cobbler を導入しています。

Cobbler がインストールされている OS が CentOS 7 だったので、CentOS Stream 8 に切り替えたところ、reposync がうまくいかなくなってしまったのでメモです。

CentOS 7 の場合(成功例)

Zabbix 5.0 のレポジトリをミラーする前提で下記コマンドを実施します。

# cobbler repo add --name="Zabbix-5.0-rhel8-x86_64" --mirror=https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/
# cobbler reposync

running: /usr/bin/reposync -l -n -d --config=/var/www/cobbler/repo_mirror/Zabbix-5.0-rhel8-x86_64/.origin/Zabbix-5.0-rhel8-x86_64.repo --repoid=Zabbix-5.0-rhel8-x86_64 --download_path=/var/www/cobbler/repo_mirror -a x86_64

正常に reposync できました。

# ll /var/www/cobbler/repo_mirror/Zabbix-5.0-rhel8-x86_64/
total 20256
drwxr-xr-x 2 root apache    4096 Jan 24 12:50 cache
-rwxr-xr-x 1 root apache     162 Jan 24 12:50 config.repo
drwxr-xr-x 2 root apache    4096 Jan 24 12:50 repodata
-rwxr-xr-x 1 root apache  475852 Dec 21 11:15 zabbix-agent-5.0.7-1.el8.x86_64.rpm
-rwxr-xr-x 1 root apache 5546872 Dec 21 11:15 zabbix-agent2-5.0.7-1.el8.x86_64.rpm
-rwxr-xr-x 1 root apache   17796 Dec 21 11:15 zabbix-apache-conf-5.0.7-1.el8.noarch.rpm
-rwxr-xr-x 1 root apache  334636 Dec 21 11:15 zabbix-get-5.0.7-1.el8.x86_64.rpm
-rwxr-xr-x 1 root apache  817968 Dec 21 11:15 zabbix-java-gateway-5.0.7-1.el8.x86_64.rpm
-rwxr-xr-x 1 root apache  513844 Dec 21 11:15 zabbix-js-5.0.7-1.el8.x86_64.rpm
-rwxr-xr-x 1 root apache   18100 Dec 21 11:15 zabbix-nginx-conf-5.0.7-1.el8.noarch.rpm
-rwxr-xr-x 1 root apache 1137376 Dec 21 11:15 zabbix-proxy-mysql-5.0.7-1.el8.x86_64.rpm
-rwxr-xr-x 1 root apache 1136416 Dec 21 11:15 zabbix-proxy-pgsql-5.0.7-1.el8.x86_64.rpm
-rwxr-xr-x 1 root apache 1078508 Dec 21 11:15 zabbix-proxy-sqlite3-5.0.7-1.el8.x86_64.rpm
-rwxr-xr-x 1 root apache   18256 May 11  2020 zabbix-release-5.0-1.el8.noarch.rpm
-rwxr-xr-x 1 root apache  369432 Dec 21 11:15 zabbix-sender-5.0.7-1.el8.x86_64.rpm
-rwxr-xr-x 1 root apache 2925220 Dec 21 11:15 zabbix-server-mysql-5.0.7-1.el8.x86_64.rpm
-rwxr-xr-x 1 root apache 2918860 Dec 21 11:15 zabbix-server-pgsql-5.0.7-1.el8.x86_64.rpm
-rwxr-xr-x 1 root apache 3302976 Dec 21 11:15 zabbix-web-5.0.7-1.el8.noarch.rpm
-rwxr-xr-x 1 root apache   17824 Dec 21 11:15 zabbix-web-deps-5.0.7-1.el8.x86_64.rpm
-rwxr-xr-x 1 root apache   17372 Dec 21 11:15 zabbix-web-japanese-5.0.7-1.el8.noarch.rpm
-rwxr-xr-x 1 root apache   16772 Dec 21 11:15 zabbix-web-mysql-5.0.7-1.el8.noarch.rpm
-rwxr-xr-x 1 root apache   16780 Dec 21 11:15 zabbix-web-pgsql-5.0.7-1.el8.noarch.rpm

CentOS Stream 8 の場合(失敗例)

CentOS Stream 8 にインストールした、cobbler 3.2.0 で同様のコマンドを実行しても、下記のようにエラーが発生します。

running: /usr/bin/dnf reposync -l -n -d --config=/var/www/cobbler/repo_mirror/Zabbix-5.0-rhel8-x86_64/.origin/Zabbix-5.0-rhel8-x86_64.repo --repoid=Zabbix-5.0-rhel8-x86_64 -p /var/www/cobbler/repo_mirror -a x86_64
received on stdout: usage: dnf [-c [config file]] [-q] [-v] [--version] [--installroot [path]]
           [--nodocs] [--noplugins] [--enableplugin [plugin]]
           [--disableplugin [plugin]] [--releasever RELEASEVER]
           [--setopt SETOPTS] [--skip-broken] [-h] [--allowerasing]
--nobest] [-C] [-R [minutes]] [-d [debug level]]
           [--debugsolver] [--showduplicates] [-e ERRORLEVEL] [--obsoletes]
           [--rpmverbosity [debug level name]] [-y] [--assumeno]
--repo [repo]]
--disable] [-x [package]] [--disableexcludes [repo]]
           [--repofrompath [repo,path]] [--noautoremove] [--nogpgcheck]
           [--color COLOR] [--refresh] [-4] [-6] [--destdir DESTDIR]
           [--downloadonly] [--comment COMMENT] [--bugfix] [--enhancement]
           [--newpackage] [--security] [--advisory ADVISORY] [--bz BUGZILLA]
           [--cve CVES] [--sec-severity {Critical,Important,Moderate,Low}]
           [--forcearch ARCH]

received on stderr: Failed to set locale, defaulting to C.UTF-8
Command line error: argument -d/--debuglevel: expected one argument

原因

CentOS 7 の reposync コマンドと、CentOS Stream 8 の dnf コマンドの reposync モジュールでコマンド引数が変わっているようです。

cobbler で reposync コマンドの引数は、/etc/cobbler/settings に設定されているようです。

# Flags to use for yum's reposync.  If your version of yum reposync
# does not support -l, you may need to remove that option.
reposync_flags: "-l -n -d"

CentOS 7 の reposync コマンドではそれぞれ下記の意味があったようです。

  • -l, –plugins enable yum plugin support
  • -n, –newest-only Download only newest packages per-repo
  • -d, –delete delete local packages no longer present in repository

CentOS Stream 8 の dnf reposync では下記になっているようです。

  • -n, –newest-only download only newest packages per-repo
  • –delete delete local packages no longer present in repository

-l に相当するものは見つけられませんでした。

したがって、/etc/cobbler/settings を下記に修正し、cobblerd を restart したら解決しました。

reposync_flags: "-n --delete"

まとめ

今回は CentOS Stream 8 で確認しましたが、dnf を採用した Oracle Linux 8 系や、Fedora でも同様の現象になると思われます。

また、rsync のレポジトリを追加した場合は、全て sync するのに、http の場合は新しいパッケージのみ sync するという挙動も気になっていました。

今回の調査結果より、最新版のみ選択する -n オプションを削除することで、全て sync できそうです。

cobbler import した Ubuntu 20.04 が PXE boot しているのに CD-ROM を求められてしまう件の解決法

$
0
0

Cobbler 3.2.0 で Ubuntu 20.04 の ISO を import して PXE boot しているにも関わらず、CD-ROM が求められる問題で困っていました。

なお、cobbler では、以前このブログで紹介した yaml の手順は使えないので、ubuntu-20.04.1-legacy-server-amd64.iso を使用して、Preseed でインストールする設定です。

Legacy 版の ISO は下記からダウンロードできます。

現象

Detect and mount CD-ROM

Your installation CD-ROM couldn’t be mounted. This probably means that the CD-ROM was not in the drive. If so you can insert it and try again.
Retry mounting the CD-ROM?

インターネットで調べてみたら、DHCP 周りも怪しそうな気がしてきましたが、この状態で busybox を見ても、lo しか見えていないようです。

画面の指示に従いインストール DVD を入れると、正常に Ubuntu 20.04 がインストールされますが、PXE の意味がなくなってしまいます。

調査

※今回は、distro 名を Ubuntu-20.04.1-x86_64 として登録していますが、環境によって読み替えていただければと思います。

いろいろ調べても有力な情報は見つからなかったのですが、公式の手順を注意深く見てみると、vmlinuz ではなく linux で起動しているようです。

cobbler で自動生成された /var/lib/tftpboot/ 内も vmlinuz + initrd.gz の構成になっていました。

# ll /var/lib/tftpboot/images/Ubuntu-20.04.1-x86_64/
total 28616
-r--r--r-- 3 root root 17637355 Aug  1 01:49 initrd.gz
-r--r--r-- 3 root root 11662080 Jul 30 05:31 vmlinuz

この部分は、cobbler distro の設定項目ですが、import 時に自動設定されていたものです。

# cobbler distro report Ubuntu-20.04.1-x86_64 | grep distro_mirror/Ubuntu-20.04.1-x86_64
Initrd                         : /var/www/cobbler/distro_mirror/Ubuntu-20.04.1-x86_64/install/initrd.gz
Kernel                         : /var/www/cobbler/distro_mirror/Ubuntu-20.04.1-x86_64/install/vmlinuz

解決法

それぞれ、下記に変更します。
公式の手順のページよりダウンロードすることもできますが、ISO の中に含まれていて、distro_mirror にもミラーされているのでそれを使用します。

  • install/initrd.gz → install/netboot/ubuntu-installer/amd64/initrd.gz
  • install/vmlinuz → install/netboot/ubuntu-installer/amd64/linux

cobbler distro edit コマンドで編集します。

# cobbler distro edit --name Ubuntu-20.04.1-x86_64 --initrd=/var/www/cobbler/distro_mirror/Ubuntu-20.04.1-x86_64/install/netboot/ubuntu-installer/amd64/initrd.gz --kernel=/var/www/cobbler/distro_mirror/Ubuntu-20.04.1-x86_64/install/netboot/ubuntu-installer/amd64/linux

正常に反映されたことを確認します。

# cobbler distro report Ubuntu-20.04.1-x86_64 | grep distro_mirror/Ubuntu-20.04.1-x86_64
Initrd                         : /var/www/cobbler/distro_mirror/Ubuntu-20.04.1-x86_64/install/netboot/ubuntu-installer/amd64/initrd.gz
Kernel                         : /var/www/cobbler/distro_mirror/Ubuntu-20.04.1-x86_64/install/netboot/ubuntu-installer/amd64/linux
# ll /var/lib/tftpboot/images/Ubuntu-20.04.1-x86_64/
total 61920
-r--r--r-- 3 root root 51738338 Jul 30 05:31 initrd.gz
-r--r--r-- 3 root root 11662080 Jul 30 05:31 linux

解決

この状態で再度 PXE を走らせると、無事 OS インストールが走りました。

Android 版 Gboard で乃木坂46・櫻坂46・日向坂46メンバーが変換できるか試してみる(2021年4月版)

$
0
0

Gboard ゴールド プロダクト エキスパートの yasu0796 です。

以前、このブログで「Android 版 Google 日本語入力に比べて、Android 版 Gboard では変換できない単語がある」ということを投稿したことがあります。

2021年3月で Android 版 Google 日本語入力のサポートが終了したので、改めて現状の Gboard の辞書を確認してみました。

現時点でのバージョン

Android 版 Gboard 10.3 で確認しました。
「ばーじょん」での変換結果は「GoogleJapaneseInput-2.26.362809503.103+24.8.9」となります。

乃木坂46

1~3期生

問題なく変換できることを確認しました。

Google 日本語入力でも入力できたことは下記のブログ記事で紹介しています。

4期生

現時点で、もともとの4期生も新4期生も正式には対応していないようで、一般的な名前変換として下記メンバーは変換できました。

  • 遠藤さくら
  • 清宮レイ
  • 筒井あやめ
  • 林瑠奈

櫻坂46

1期生

問題なく変換できることを確認しました。

Google 日本語入力でも入力できたことは下記のブログ記事で紹介しています。

2期生

現時点で、もともとの2期生も新2期生も正式には対応していないようで、一般的な名前変換として下記メンバーは変換できました。

  • 関有美子
  • 藤吉夏鈴
  • 松田里奈
  • 森田ひかる

日向坂46

1・2期生

問題なく変換できることを確認しました。

Google 日本語入力でも入力できたことは下記のブログ記事で紹介しています。

3期生

現時点で、もともとの3期生も新3期生も正式には対応していないようで、一般的な名前変換として、「上村ひなの」さんは変換できました。

まとめ

Android 版 Gboard では、Google 日本語入力相当の辞書が利用できることを確認しました。

Google 日本語入力でも対応していなかった、坂道合同オーディション(乃木坂46 4期生・櫻坂46 2期生・日向坂46 3期生)メンバーについては、単語リストに登録する必要がありそうです。

公式しか勝たん?Twitterクライアントシェア 総選挙2021

$
0
0

例年、この時期に開催している「Twitter クライアントシェア総選挙」、今年も調査してみました。

上位5位

前回と同じく、Twitter for iPhone がほぼ半分、公式クライアントからの投稿も87%を締めています。

最近リリースされた Fleet、スペースといった機能は Twitter 公式クライアントしか利用できないため、公式クライアントのシェアが高い傾向はまだ続くのかもしれません。

1~50位 詳細結果

Twitter for iPhone48.32%
Twitter for Android26.04%
Twitter Web App11.12%
twittbot.net5.51%
Twitter for iPad1.80%
グランブルー ファンタジー1.08%
TweetDeck0.88%
Botbird tweets0.33%
Peing0.28%
BelugaCampaignSEA0.28%
feather for iOS  0.16%
OWNLY Admin0.14%
WordPress.com0.13%
TwitPane for Android0.13%
Echoes Act20.12%
TwitCasting0.12%
Tweetbot for iΟS0.09%
今日のツイライフ0.09%
Twitter for Mac0.09%
ツイタマ for Android0.08%
twitcle plus0.08%
PlayStation?Network0.08%
Echofon0.07%
Tween0.07%
Cheap Bots, Done Quick!0.07%
Nintendo Switch Share0.06%
SocialDog for Twitter0.06%
ツイタマ+ for Android0.06%
TwitPanePlus0.06%
ABEMA0.06%
ATELU for Twitter0.05%
Mirrativ0.05%
Instagram0.05%
Camtsuku0.05%
MixChannel – ミクチャ0.04%
Tabtter0.04%
livedoor Blog0.04%
Janetter0.04%
ツイ廃あらーと0.04%
IFTTT0.04%
LINE LIVE app0.03%
Janetter for Android0.03%
on TheWorld0.03%
Tweetlogix0.03%
Janetter iOS0.03%
Shuttlerock – Bluebird0.03%
Twitter Web Client0.02%
BF SFD rate0.02%
SHOWROOM-LIVE0.02%
やさしい世界を目指すマシュマロちゃん0.02%

データ概要

  • 調査期間:2021年5月10日~5月16日まで収集
  • 取得API:Twitter Streaming API GET statuses/sample
  • 取得条件:日本語のツイートのみ、Response Filter Patternで「”lang”:”ja”」を設定
  • ツイート数:475万件

Android 版 Gboard で坂道合同オーディションメンバー(乃木坂46 4期生・櫻坂46 2期生・日向坂46 3期生)が変換できるか試してみる(2021年7月版)

$
0
0

Gboard ゴールド プロダクト エキスパートの yasu0796 です。

Android 版 Gboard がバージョンアップされ、一部の坂道合同オーディションメンバー(乃木坂46 4期生・櫻坂46 2期生・日向坂46 3期生)の名前が変換できるようになったようなので、検証してみました。

現時点でのバージョン

Android 版 Gboard 10.6 で確認しました。

「ばーじょん」の変換結果は「GoogleJapaneseInput-2.26.374579795.103+24.10.9」となります。

現時点で、iOS 版 Gboard と Google 日本語入力の辞書のバージョンは「2.8.9」となるため、参考として掲載します。

乃木坂46

◎は推測候補にも表示されるメンバー、○は正しく漢字変換できるものの、一般的な人名辞書で変換されていると思われるメンバーです。

メンバーAndroid 版 Gboard
(2.10.9)
iOS 版 Gboard
Google 日本語入力(2.8.9)
遠藤さくら
賀喜遥香××
掛橋沙耶香×
金川紗耶×
北川悠理×
黒見明香××
佐藤璃果××
柴田柚菜×
清宮レイ
田村真佑××
筒井あやめ
早川聖来×
林瑠奈
松尾美佑×
矢久保美緒××
弓木奈於××

櫻坂46

メンバーAndroid 版 Gboard
(2.10.9)
iOS 版 Gboard
Google 日本語入力(2.8.9)
井上梨名×
遠藤光莉×
大園玲××
大沼晶保×
幸阪茉里乃××
関有美子
武元唯衣××
田村保乃××
藤吉夏鈴
増本綺良××
松田里奈
森田ひかる
守屋麗奈◎※×
山﨑天××

※守屋麗奈さんは、正しくは「もりやれな」さんですが、「もりやれいな」として登録されているようです

日向坂46

メンバーAndroid 版 Gboard
(2.10.9)
iOS 版 Gboard
Google 日本語入力(2.8.9)
上村ひなの
髙橋未来虹××
森本茉莉◎※×
山口陽世××

※森本茉莉さんは、正しくは「もりもとまりぃ」さんですが、「もりもとまり」として登録されているようです

その他

守屋麗奈さんが「もりやれいな」さんとして登録されているため、乃木坂46 2期生の「山崎怜奈」さんの名前で確認したところ、同様に「やまざきれいな」として登録されているようでした。(正しくは「れな」)

メンバーの名前以外にも、坂道関連としては下記の単語が変換できるようになったことを確認しました。

乃木坂46関連語

  • 言霊砲
  • ノギザカスキッツ
  • ぺこぱ(二文字目まで入力した段階で表示されるようになりました)
  • 東京リベンジャーズ
  • ジコチューで行こう

「世界中の隣人」が変換されることを確認しました。旧バージョンにはないものですが、おそらく「世界中の隣人よ」を表示したかったものと思われます。

櫻坂46・欅坂46関連語

  • ブルームーンキス
  • 欅共和国

一方、これまでは推測候補に現れていた「カタカナケヤキ」は表示されなくなったようです。

日向坂46

  • ソンナコトナイヨ
  • アザトカワイイ
  • ドレミソラシド

また、「君しか勝たん」も正常に変換できました。ただ、曲名が固有名詞として変換されたのではなく、「勝たん」の変換精度が向上しているようで、「○○しか勝たん」全般で正しく変換できるようになりました。

まとめ

Android 版 Gboard で、坂道合同オーディション(乃木坂46 4期生・櫻坂46 2期生・日向坂46 3期生)メンバーの一部や、最近の単語が辞書に登録されたことを確認しました。

カップリング曲含むセンター経験者である

  • 山﨑天さん
  • 賀喜遥香さん
  • 田村真佑さん

ラジオのレギュラー番組を担当している

  • 弓木奈於さん
  • 矢久保美緒さん
  • 田村真佑さん

写真集の発売が決定している田村保乃さんなど、個人的には知名度があると考えているメンバーに対応していなかったりはしていました。

期待される結果が候補に存在しない場合、こちらのフォームから送信することもできます。

今後の辞書のアップデートに期待したいです。


SoftEther で L2TP/IPsec から OpenVPN に切り替えてみた

$
0
0

以前より、下記の用途のため、自宅で SoftEther のサーバーを立てています。

  • カフェ等で公衆 Wi-Fi を使用する場合のセキュリティ担保
  • 外出先から自宅 PC へリモートデスクトップ
  • セキュリティ担保のため、このブログ管理画面は IP アドレスで制限をかけているため、外出先でのブログ更新
  • 自宅の回線を IPoE(IPv4 over IPv6)に切り替えると安定しない Radiko の地域判定を VPS 経由でルーティングすることで安定化

接続方法は下記です。

  • Windows、Linux:SoftEther 公式のクライアントによる接続
  • スマートフォン、MacBook、Chromebook:OS 標準機能の L2TP/IPsec による接続

8月15日、ふとタスクマネージャーを見ると、SoftEther のプロセスの CPU 使用率が高い状態となっており、ログを確認すると、L2TP/IPsec に大量のアクセスがありました。

SoftEther 側の対策

この後ご紹介する私の対策後、SoftEther 側でも対策ビルドが公開されています。

同様の問題で困っている方は、下記をご確認の上アップデートを検討するとよいかもしれません。

Firewall で制限をかける?

パケットを観測すると、海外の IP アドレスからの 4500/UDP の通信でしたので、まず、国内の IP アドレスのみ通信を許可するようファイアウォールを設定することを検討しました。

海外に出かけた際に VPN に接続することもありますが、基本は、Windows PC を持って行くので、L2TP/IPsec はそのときに IP アドレス単位で許可するといった運用も可能だからです。

ただ、IP アドレスリストの管理という手間もあるので、ちょっと考え物でした。

L2TP/IPsec を使い続ける?

いろいろ調べていたところ、現在ベータ版の Android 12 では、OS 標準の VPN クライアントで L2TP/IPsec のサポートが終了する可能性があるということを知りました。

このまま使い続けるのも良くないのかもしれません。

OpenVPN サーバー機能の有効化

OpenVPN 互換サーバーを使うと、macOS, iOS, Android, Android アプリに対応した Chrome OS で OpenVPN 公式クライアントを用いて接続できるようです。

この機能は知っていましたが、専用のクライアントが必要ということで手を出していませんでしたが、早速設定してみました。

SoftEther OpenVPN サーバー機能

デフォルトでは、1194/UDP となりますが、OpenVPN サーバー機能は TCP ポートでも有効になり、通常の SoftEther VPN サーバーと共用できるとのことでしたので、UDP は空白としました。

OpenVPN クライアントの設定

それぞれの端末で、OpenVPN クライアントをインストールします。

SoftEther の画面から保存できる、サンプル設定ファイルを使うと便利です。

詳細については、サンプル設定ファイルの中に説明がありますが、私は openvpn_remote_access_l3.ovpn をベースに下記のように変更しました。

  • proto udp → tcp
  • remote ○○.v4.softether.net 1194 → remote ○○.softether.net (ポート番号)

なお、説明に「2. L3 と L2 の違い」といった項目がありましたが、Android 版ではそもそも tap モード(L2)には対応していない様子でした。

ユーザー名、パスワードはクライアント入力で設定するため、このファイルを全てのクライアントに配布して問題ありません。

Chromebook の場合

Chrome OS 標準で OpenVPN をサポートしていますが、今回のようにポート番号を変えたり高度な機能を用いる場合は、Android 版アプリを導入することが推奨されています。

Android 端末同様、OpenVPN Connect にプロファイルを登録後、正常に VPN で通信できることを確認しました。

最後に

SoftEther VPN Server の環境で、SoftEther VPN Client が利用できない macOS, iOS, Android, Android アプリに対応した Chrome OS で OpenVPN 公式クライアントを用いて接続できることを確認しました。

OpenVPN プロトコルは 100Mbps も出ないということが書かれていました。これは、SoftEther の問題ではなく、これでも公式のサーバーよりは優れているとのことです。

自分の用途としては 100Mbps の通信は必要ないところですが、後日確認してみたいと思います。

(UDP ではなくTCP で通信しているのもボトルネックかもしれません)

また、以前の記事で紹介した MAC アドレス固定機能もこのタイミングで使用し始めましたが、うまく動いていないような気がします。
ここもあとで見てみたいと思います。

VirtualBox でフロッピーディスクドライブは EFI モードでは使えない

$
0
0

本物のフロッピーディスクはもう何年も見たことはありませんが、VirtualBox で仮想フロッピーディスクを使う際にちょっと戸惑ったので投稿します。

環境

  • VirtualBox 6.1.28
  • ホスト、ゲストともに Windows 10
  • ゲストには Guest Additions インストール済み

状況

フロッピーディスクを追加しているのにもかかわらず、フロッピーディスクドライブのAドライブが表示されません。

デバイス マネージャーを確認すると、「標準フロッピー ディスク コントローラ」は見えています。

Windows ゲストのだけでなく、Linux でも同様でした。

原因と回避策

いろいろと設定を確認したところ、EFI モードではなく、従来のモードで起動するとフロッピーディスクドライブが見えるようになりました。

デバイス マネージャーでも、「標準フロッピー ディスク コントローラ」の下に「フロッピー ディスク ドライブ」が表示されることを確認しました。

まとめ

VirtualBox 6.2.でフロッピー ディスク ドライブを使うには、EFI を無効化する必要がありました。

調査に時間がかかってしまったので、VirtualBox では「無効な設定が見つかりました」と通知する機能もあるので、そういったところで指摘してほしいなと思いました。

(画像は別の設定で意図的に表示)

IE が削除された Windows 11 で “Outernet Explorer”を使う(INASOFT / MS-DOS Player for Win32-x64 編)

$
0
0

この記事はジョーク記事となります。あらかじめご了承下さい。

Windows 11 では、Internet Explorer が削除されました。

Windows 11 Internet Explorer 無し

Internet Explorer の代わりにジョークソフトとして Outernet Explorer を Windows 11 で利用してみましたので記事で紹介します。

なお、下記の窓の杜の記事で名前を思い出したのですが、この記事のソフトウェアは一切登場しません。

Outernet Explorer のダウンロード

まずは、INASOFT さんのホームページから Outernet Explorer をダウンロードします。

画面左から「疑似シリーズ」を選択します。

INASOFT トップページ

たくさんのソフトウェアが公開されているので、”Outernet Explorer” とページ内検索するとダウンロードができます。

Outernet Explorer を実行・・・できず

ただ、現状の Windows 11 ではそのまま実行することができません。

実行に必要なアプリケーションのダウンロード

先ほどの画像でぼかしていましたが、実はこのアプリケーションの実行には MS-DOS が必要となります。

今回は、「MS-DOS Player for Win32-x64」という便利なソフトを見つけたのでそれを使ってみます。

どの実行ファイルでも実行可能ですが、どこかの msdos.exe と同じ階層に GJWIN98.COM を配置します。

Outernet Explorer の実行

準備ができたら下記コマンドを実行します。

msdos.exe GJWIN98.COM

無事、Windows 11 で Outernet Explorer が実行できました。

なお”・”と表示されている部分は、PC-98 だとーや|などの罫線となります。

より正確なエミュレーションが必要な場合、PC-98 エミュレータが必要になりますが、環境の準備が大変なので、「MS-DOS Player for Win32-x64」 は簡単に実行できるという面では良さそうです。

Windows Server 2019 の WSL で man や less や vim が真っ黒になる現象の解消法

$
0
0

Windows Server 2019(17763.2686)において WSL を使用する際、

  • man
  • less
  • vim
  • git commit
  • htop

といった全画面表示となるコマンドを実行した際に、何も表示されなくなる現象が発生しました。

Windows Server 2019 WSL 全画面コマンド 表示されない

コマンドによっては絶望の一秒前になるところですが、Ctrl + C や :q! で終了できるので、表示上のみの問題だということが推測されます。

原因

WSL の Issue に同様の報告がありました。

2021年11月にリリースされた KB5006368 を削除すれば解消するとのことですが、いったんその方向はおいといて

TERM が「xterm-256color」では問題が発生し、「xterm-color」では問題が改善するようです。

対応方法

デフォルトでは 「xterm-256color」 であることを確認します。

$ echo $TERM
xterm-256color

まずは「xterm-color」に変更します。

$ export TERM=xterm-color

これで正常に表示されるようになりました。

Windows Server 2019 WSL 全画面コマンド 修復後

ただ、これでは終了時にリセットされるので、~/.bashrc などにも加筆します。

その他

この現象は、

  • Windows 10 (21H1 19043)
  • Windows Server 2022(20348)
  • Windows 11(22000)

などでは再現せず、Windows Server 2019 や同じビルドの Windows 10 LTSC 版のみの問題のようです。

Windows 11 で「N88互換BASIC for Windows95」が動作するか確認する #東パソ

$
0
0

2022年4月15日(金)24時30分からBSテレビ東京にて「東京パソコンクラブ」という謎のプログラミング番組が始まるそうです。

渋谷スクランブルスクエアを背景に、NEC PC-9801RA が写っています。

このパソコンの主なスペックはこちらのページより、

  • CPU:i386DX(20MHz)、V30(8MHz)
  • メモリ:標準1.6MB、最大14.6MB
  • フロッピィディスク:5インチ x 2
  • 発売:1988年7月
  • ハードディスク:なし(498,000円)あり(736,000円)

とのことです。

現在だと、Apple M1 Ultra の Mac Studio が 499,000円で買えることから、34年の間にかなり進化していることが分かります。

PC-98 シリーズでは OS があるフロッピーディスクやハードディスクがない場合、ROM 上の N88 BASIC が起動し、そこでプログラミングをすることができました。

N88 BASIC そのものの利用は難しいですが、Windows でも利用できるフリーソフトが配布されています。

for Windows95 という名前から、最新の Windows 11 でも動作するか確認してみました。

インストール

まずは、Vector のサイトからダウンロードします。

LHA 形式なので Windows 11 標準の機能では解凍できませんので、7-Zip を用いて解凍します。

Windows 11「N88互換BASIC for Windows95」インストーラ

懐かしの全画面のインストーラが起動し、指示に従うことでインストールできました。

起動

正常にインストールできましたら起動します。

N88互換BASIC for Windows95 GRAPH02.BAS

正常に動作しました。

ゲームプログラミング

N88 BASIC で実際にゲームプログラミングする方法については省略しますが、都内でも図書館によっては書庫の方には保存されているため借りられそうです。

終わりに

残念ながら PC-9801 のゲームプログラミングではないようです。

東京パソコンクラブ、どのような番組になるか今から楽しみです。

Windows 版 QEMU(qemu-system-x86_64.exe) で Chrome OS Flex を起動する

$
0
0
開発版の情報です。アップデートによりこの情報が古くなる可能性があります。

Chromebook などの専用デバイスではなく、通常の PC にインストールでき Chrome OS のほとんどの機能が利用できる Chrome OS Flex がリリースされました。

ただし、Chrome OS Flex は USB ライブブートで一時的に試せますが、アップデートなどはできず、インストールするとなると既存の OS が消えるため専用の PC が必要となります。

一時的な調査やテストを目的とした場合にのみライブブートを使用し、それ以外の場合はインストールして Chrome OS Flex を最大限に活用することを強くおすすめします。

Chrome OS Flex をインストールすると、対象デバイス上にある既存のデータ、アプリケーション、設定、OS がすべて消去されます。インストールに成功しなかった場合でも、失われたデータは復元できません。

3: Chrome OS Flex の使用を開始する – Chrome OS Flex ヘルプ

仮想化について

Chrome OS Flex の前身となる「CloudReady」は VMware で動作する OVA イメージが提供されていました。

ただ、Chrome OS Flex では VMware をサポートしておらず、Dev チャンネルのままだと自動的に Chrome OS Flex にアップデートされ起動しなくなってしまいます。

QEMU の選定

Twitter で KVM で動作したという事例がありました。

手元の環境には残念ながら KVM ホストはなく、Windows → Linux → Chrome OS Flex の Nested しか用意できないため、Windows で QEMU を動かしてみる方向を考えてみます。

Windows 版 QEMU の準備

まずは下記を準備します。

Hyper-V や WSL2、Windows Sandbox を使用している方は HAXM は利用できないかと思います。

自分はメインの仮想環境が VMware、VirtualBox のため、WSL 1 を使用しているのでこの構成となります。

qemu のオプションで -accel hax の代わりに、-accel whpx を指定するとよいようですが、試せていません。

QEMU で Chrome OS Flex の準備

まずは、Chrome OS Flex のイメージを用意する必要があります。

ヘルプによると「Linux で Chrome OS Flex の USB インストーラを作成するにはどうすればよいですか?(近日提供予定)」とありますが、現時点は手動で用意します。

正規の手順で作成した USB メモリをイメージ化する方法もありますが、今回はこのページの手順を参考にイメージファイルを入手しました。

5/1 時点で、拡張機能で参照している JSON ファイルが cloudready_recovery.json から cloudready_recovery2.json にアップデートされており、バージョンは 14685.0.0 でした。

QEMU で Chrome OS Flex の起動

ZIP ファイルを解凍して、QEMU を実行します。

いろいろ試行錯誤した結果、下記コマンドで正常動作を確認しました。

"C:\Program Files\qemu\qemu-system-x86_64.exe" ^
-accel hax -machine q35 -m 4096 ^
-cpu Skylake-Client-noTSX-IBRS -smp cpus=1,cores=3,maxcpus=3 ^
-vga virtio -display gtk,show-cursor=on -rtc base=utc ^
-device intel-iommu -usb -device usb-tablet -k jp106 ^
-hda "ダウンロードしたイメージファイル"

それぞれのオプションの意味は下記となります。

  • -accel hax:HAXM を使用するオプションです
  • -cpu Skylake-Client-noTSX-IBRS:ホストの CPU が Core i5 6400 のため Skylake を指定しています
  • -smp cpus=1,cores=3,maxcpus=3:ホストの CPU が4コアのため、3コア分をゲストに割り振ります
  • -vga virtio:他のものだと画面が正常に表示されませんでした
  • -display gtk:Machine メニューからいろいろ操作するにはこれの方が良さそうです
  • -usb -device usb-tablet:通常のマウスの設定だとカーソルが飛んで操作が難しいです、タブレットモードに設定することで操作できました。ただタブレットなのでスクロールなどはタッチするように操作します。
  • show-cursor=on:タブレットだとカーソルがないので操作が難しくこれを設定することで操作できます
  • -rtc base=utc:これを設定することでゲストに正常に時刻設定されます

動作時のスクリーンショットは下記となります。

Chrome OS Flex on QEMU for Windows

まとめ

QEMU for Windows(qemu-system-x86_64.exe) で正常に Chrome OS Flex が動作することを確認しました。

この方法でも、「とりあえず動作する」レベルでまともには動作しません。

あくまで動作検証のみの利用となります。

本物の KVM 環境ではもっとまともに動いてくれそうな気がしますが、VMware や VirtualBox などでも動いてほしいものです。

Ubuntu 22.04 Server で Autoinstall YAML で自動インストールを行う

$
0
0

Ubuntu の最新の LTS 版となる 22.04 がリリースされました。

このリリースでは Preseed による OS インストールは完全にできなくなり、自動でインストールするにはブログでも以前紹介した Autoinstall を使う方法のみとなりました。

以前のブログでは、ユーザー作成が上手くいかず、late-commands で無理矢理設定していました。

今回は修正されているかも改めて確認してみました。

user-data の中身

を参考に設定します。

#cloud-config
autoinstall:
    version: 1
    identity:
        hostname: ubuntu-vm22
        username: yasu
        password: "$6$以下略"
    ssh:
        install-server: yes
        authorized-keys:
            - "ssh-ed25519 以下略"
        allow-pw: true
    packages:
        - language-pack-ja
    keyboard:
        layout: jp
    locale: en-US.UTF-8
    refresh-installer:
        update: yes
    user-data:
        timezone: "Asia/Tokyo"
        disable_root: false

自動インストールの実施

user-data の渡し方として、PXE などネットワーク経由での方法もありますが、今回は手軽にできる、ISO ファイルを作成します。

genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data

前回の記事で紹介した Windows 版 QEMU(qemu-system-x86_64.exe)を使うと下記となります。

"C:\Program Files\qemu\qemu-system-x86_64.exe" ^
-accel hax -machine type=q35 -m 4096 ^
-cpu Skylake-Client-noTSX-IBRS -smp cpus=1,cores=3,maxcpus=3 ^
-vga virtio -display gtk,show-cursor=on -rtc base=utc ^
-device intel-iommu -k jp106 -net nic,model=virtio -net user ^
-cdrom ubuntu-22.04-live-server-amd64.iso ^
-drive file=ubuntu22.qcow2,if=virtio ^
-drive file=seed.iso,if=virtio

VirtualBox や VMware の場合、

  1. ubuntu-20.04-live-server-amd64.iso
  2. seed.iso

の順でマウントして仮想マシンを起動させます。

grub のオプションに「autoinstall」を追記するとスムーズにインストールできるかと思います。

動作確認

identity username, password などのユーザー作成

ユーザの作成、パスワード、SSH については下記を設定しています。

    identity:
        username: yasu
        password: "$6$以下略"
    ssh:
        install-server: yes
        authorized-keys:
            - "ssh-ed25519 以下略"
        allow-pw: true

Ubuntu 20.04 ではこれらが設定されず、late-commands で流し込んでいましたが、
パスワード、SSH キーともに正常に設定されたことを確認しました。

システムロケール設定

システムロケールは下記を設定しています。

    keyboard:
        layout: jp
    locale: en-US.UTF-8

ただ、実際はキーボードは正常に設定された物の、システムロケールは Ubuntu 20.04 同様、正常に設定されませんでした。

$ localectl
   System Locale: LANG=C.UTF-8
       VC Keymap: n/a
      X11 Layout: jp
       X11 Model: pc105

タイムゾーン設定

タイムゾーンは下記を設定しています。

    user-data:
        timezone: "Asia/Tokyo"

Ubuntu 20.04 とは異なり、正常に設定されたことを確認しました。

$ timedatectl status | grep zone
                Time zone: Asia/Tokyo (JST, +0900)

まとめ

Autoinstall YAML により OS のインストールを簡単に自動化できることを確認しました。

以前 Ubuntu 20.04 で検証したときよりも、より挙動が安定しており安心して使えそうです。

依然として、言語設定といったリファレンスに書かれているものも、正常に動作しない部分もありましたが、 late-commands でコマンドを流し込むことも可能なので、工夫次第でなんとかなりそうです。


VMware・VirtualBox・Hyper-V・QEMU(HAXM・WHPX)CPU 性能測定

$
0
0

前々回の記事で、Windows 版 QEMU(qemu-system-x86_64.exe)を使用して HAXM で VM を動かしてみましたが、性能差がどれくらい出るのかというのをあまり気にしたことがなかったので、確認してみました。

測定条件

ホスト

仮想マシンを動かすホストは下記となります。

  • CPU:Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz
  • Windows 11 21H2 Build 22000.651
  • VMware 16.2.3
  • VirtualBox 6.1.34
  • HAXM 7.7.1
  • QEMU for Windows 7.0.0

ゲスト

ハイパーバイザーは異なりますが、すべて下記の設定となります。

  • Ubuntu 22.04 (Kernel 5.15.0-27)
  • CPU:3Core
  • メモリ:2GB

前回の記事で紹介した Autoinstall でインストールしましたので、同一の設定になっているかと思います。

測定方法

以前の記事では、Unixbench を用いていましたが、測定に時間がかかるので、今回は簡単に測定できる CPU のみに着目します。

今回は比較しませんが、ディスクやネットワークの性能測定を行う場合、IDE や e1000 NIC ではなく、準仮想化・VirtIO などを選定するなど必要になるかと思います。

CPU 性能の測定として、7-Zip を行いました。

今回はシングルスレッドの性能を比較しました。

インストール手順およびベンチマークの実行手順は下記となります。

apt install p7zip-full
7z b -mmt1

このような結果が出力され、最後の値をスコアとしています。

# 7z b -mmt1

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=C.UTF-8,Utf16=on,HugeFiles=on,64 bits,3 CPUs Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz (506E3),ASM,AES-NI)

Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz (506E3)
CPU Freq: 64000000 - - - - - - - -

RAM size:    1942 MB,  # CPU hardware threads:   3
RAM usage:    435 MB,  # Benchmark threads:      1

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:       3418   100   3326   3326  |      36862   100   3132   3147
23:       2913   101   2931   2968  |      36550   101   3141   3164
24:       2774   100   2973   2983  |      35904   100   3147   3152
25:       2624   100   2995   2996  |      35122   100   3127   3126
----------------------------------  | ------------------------------
Avr:             100   3056   3068  |              100   3137   3147
Tot:             100   3097   3108

測定結果

数字が多いほど処理性能が高いと言えます。

Hyper-V ハイパーバイザー H/s
なし なし(Windows 版) 5044
なし VMware 3108
なし VirtualBox 2897
なし QEMU (HAXM) 2848
あり なし(Windows 版) 4650
あり Hyper-V 3352
あり VirtualBox 3238
あり QEMU (WHPX) 3069
あり VMware 2926

まとめ

Hyper-V を有効化すると、VMware のパフォーマンスが低下するだけでなく、ホスト自体もハイパーバイザーの上に乗るのでパフォーマンスが低下してしまいます。

WSL2 を有効化すると性能が落ちることは注意すべきかなと思います。

その一方、QEMU を使用する際は、HAXM ではなく、Hyper-V の機能をしようした WHPX のほうが性能が高いことが分かりました。

前々回の記事 のように Chrome OS Flex を動かしたり、Android Emulator を使用する機会が多ければ、Hyper-V のほうが性能が生かせると思います。

どのようなものを動かすかにもよりますが、何かの参考になればと思います。

Windows 11 アップデート後 Brother ドキュメントスキャナ ADS-2000 が正常に利用できない問題の解決法

$
0
0

2014年より Brother 製ドキュメントスキャナ「ADS-2000」を使用しています。

GW にメインの PC を Windows 11 にアップデートしたところ、ケーブルは接続され、本体のランプも正常にもかかわらず、接続エラーが発生するようになってしまいました。

ADS-2000 接続エラー
接続エラーです。
インターフェースケーブルが正しく接続されていることと、本体の電源が入っていることを確認してください。
本製品が他の動作をしている場合は、動作終了後に操作をやり直してください。
[TW006]

PC は自作で、何年かに一回組み替えており現在は第10世代の Core i5 となりますが、周辺機器は8~12年稼働している物がいくつか存在しています。

たとえば、EPSON インクジェットプリンタ PX-101 ももうすぐ12年になりますが、Windows 11 でも正常に動作しています。

解決策

この製品に関する情報はありませんでしたが、EPSON のスキャナで同様の事例が報告されていました。

そのページに書かれているように、「Windows Image Acquisition(WIA)」のリスタートをすると解消しました。

Android 13 を Google Pixel 4a で試してみる

$
0
0

本日、Android 13 が正式にリリースされ、Pixel 4~6a に対して提供が開始されました。

手元の Google Pixel 4a でも、利用可能になっていたので、アップデートしてみました。

アップデートの流れ

設定 → セキュリティ → セキュリティ アップデートを選択すると、下記のような画面が表示され、アップデートが可能です。

自分の場合、ここから次のステップに進むまで1時間くらいかかりました。

ただ、バックグラウンドで行われるため、この間特に使えないということはありませんでした。

その後の再起動では、通常の再起動と同様で、1分くらいで再起動が完了しました。

また、iOS ではアップデート時の再起動の画面が長く、着信などがない時間帯にする必要がありましたが、Pixel のアップデートにおいてはその心配はなさそうです。

アップデート後のバージョン

バージョンは下記となります。

  • Android バージョン 13
  • Android セキュリティ アップデート 2022年8月5日
  • カーネル バージョン 4.14.276
  • ビルド番号 TP1A.220624.014

修正されたこと

Google Pixel において、Android 12 の2022年6月のアップデートより、

  • ユニゾンエアー
  • 乃木坂的フラクタル

などのゲームアプリから他のアプリに切り替えると、アプリが強制終了する問題が発生していましたが(参考)、問題なく利用できるようになりました。

これが理由で、外出時にメイン利用、ゲーム用の二台のスマートフォンを持ち歩かなければならならず、結果として楽天モバイル回線も解約できなかったところ、元の一台で対応できそうです。

変わったこと

変更点については、公式コミュニティに記載されています。
(現在は英語のみですが、今後日本語記事も公開されると思います。)

たくさんあるため、気になったところだけピックアップして紹介します。

メディアコントロールの強化

ロック画面に表示されるメディアコントロールがのデザインが新しくなり、どこまで再生しているのかも分かるようになりました。

Android 12(Pixel 6)

Android 13(Pixel 4a)

YouTube Music、Spotify は対応していました。

なお、今回は撮影用に、アートワークが横長の As you know?(完全生産限定盤)から選曲しました。

通常の CD サイズのアートワークの場合、このように表示されます。
今までのバージョンでは、正方形で表示されていたので全体が表示されていました。

通知の権限

今までは通知については権限とは別に管理していましたが、権限の一つとして制御されるようになりました。

通知を使用するアプリは、初回起動時にこのように表示されます。

クリップボード

クリップボードにコピーした際に、左下に内容が表示されるようになり、内容の確認とアプリへの共有が容易になりました。

ただ、パスワードをコピーすると、中身も表示されるので、セキュリティ面では注意が必要です。

パスワードマネージャーの場合、スクリーンショットが撮影できないため、この画像のみカメラ撮影となります。

注意

本日リリースされたばかりのバージョンとなります。

アプリによっては正常に動作しない可能性があるため、使えなくなったら困るアプリがある場合はアプリの開発元の情報をお待ちいただくのが良いかと思います。

私も、メインは Google Pixel 6 を利用しているのですが、
チケットのアプリやおサイフケータイなど、使えなくなったら困るアプリがいくつかあるので、もう少し様子を見てからアップデートしたいです。

ユニゾンエアーについては、2曲程度プレイしましたが、特に問題なく利用できています。

まとめ

Google Pixel 4a を Android 13 にアップデートしました。

  • バックグラウンドで更新され、使えない時間は1分程度
  • 一部のゲームアプリで発生していた問題は解消
  • 曲の表示、通知、クリップボードなどの表示が進化
  • 今のところ大きな不具合には遭遇せず
  • リリースされたばかりなのでアップデートは慎重に

cobbler 3.3 系から cobbler-web が無くなった話

$
0
0

このブログでも何回か登場している Cobbler ですが、このブログの執筆時点では 3.3.3 がリリースされています。

CentOS Stream 9 等で利用できる epel9 においては、3.3.3 のパッケージが配布されているようです。

# dnf list cobbler*
Available Packages
cobbler.noarch                          3.3.3-1.el9                    epel
cobbler-tests.noarch                    3.3.3-1.el9                    epel
#

CentOS Stream 8 等で利用できる epel8 においては、3.2.2 となっています。
※インストール済みのためコマンドが異なります

# dnf list installed | grep cobbler
cobbler.noarch          3.2.2-13.module_el8+15284+5d084733         @epel-modular
cobbler-web.noarch      3.2.2-13.module_el8+15284+5d084733         @epel-modular

ただ、このパッケージを見て何かお気づきでは無いでしょうか。

そう、「cobbler-web」のパッケージが無くなったのです。

Cobbler Web とは

https://{cobbler サーバー}/cobbler_web

で表示でき、cobbler の一通りの操作が可能な Web インターフェースです。

Cobbler web 3.2.2

複雑な操作は、CUI を使った方が良いかと思いますが、確認作業や単純なコピーなどではこちらを使うと便利でした。

Cobbler 3.3 以降では

3.3.0 のリリースノートに下記の記載がありました。

The webinterface got removed
Please use the CLI in the meantime

Release Cobbler V3.3.0 · cobbler/cobbler

どうやら cobbler-web は消えてしまったようです。

当面の間は CLI を使うことを推奨されています。

新しい Web 画面は別のリポジトリとして開発中のようです。

node.js を使っているので、勉強しつつですが、とりあえず動かしてみました。

cobbler-web 3.3.3 ログイン画面

まだ開発中のようで、ログインでき、メニューが表示されるだけで、何もできませんでした。

まとめ

Cobbler Web を普段利用していた方は、開発の様子を見つつ、しばらくは 3.2.2 を利用するしか無いと思います。

CLI でよければ、3.3.3 に移行しても良いと思います。

CentOS Stream 9 系だと、3.2 のパッケージは提供されていないので、cobbler サーバーを立てるなら、8 系をしばらく利用することになるのかなと思います

Windows 11 22H2 で WSL の Fedora Remix が正常に動作しない問題解消法

$
0
0

特にメイン PC で Fedora を使っているというわけではないのですが、WSL においては CentOS Stream の提供が無いため、以前より Fedora を利用しています。

Fedora は半年ごとに新しいバージョンがリリースされ、だいたい13ヶ月間のサポートが提供されています。
そのたびにアップグレードもしくはクリーンインストールを行う必要があります。

自分の場合、WSL 環境の基本的なセットアップは Ansible で行っており、あとは home ディレクトリをコピーすれば移行が完了するような構成にしているため、Fedora Remix の最新版がリリースされる度に環境をリセットしています。。

エラー発生

Windows 11 22H2 になってからか、Fedora 36 (最新版は 37 のため一つ前のバージョン)になってからか、一旦アンインストールし、再度インストールが完了し、ユーザー名などの初期設定をしようとすると下記のようなエラーが発生することがあります。

> wsl
Processing fstab with mount -a failed.

<3>WSL (8) ERROR: CreateProcessEntryCommon:348: getpwuid(1000) failed 2
<3>WSL (8) ERROR: CreateProcessEntryCommon:352: getpwuid(0) failed 2
<3>WSL (8) ERROR: CreateProcessEntryCommon:559: execvpe /bin/sh failed 2
<3>WSL (8) ERROR: CreateProcessEntryCommon:568: Create process not expected to return

Microsoft の情報によると、Linux 環境内の wsl.conf 内に automount の設定項目があるようなのですが、そもそも Linux が立ち上がらないのでそこにたどり着けません。

ちなみに、WSL のバージョンは下記となります。

> wsl --version
WSL バージョン: 1.0.3.0
カーネル バージョン: 5.15.79.1
WSLg バージョン: 1.0.47
MSRDC バージョン: 1.2.3575
Direct3D バージョン: 1.606.4
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windowsバージョン: 10.0.22621.963

解決法

PC を再起動したり、WSL2 / 1 を切り替えたりしてもいろいろ解決しませんでした。

設定 → アプリ → インストールされているアプリで「Fedora Remix for WSL」をアンインストールしていたのですが、なぜか登録されたままになっていることを確認しました。

>wsl -l -v
  NAME           STATE           VERSION
* fedoraremix    Stopped         1

「インストールされているアプリ」では削除済みであることを確認し、削除しました。

>wsl --unregister fedoraremix

あらためて、インストールして、正常動作しました。

まとめ

無事に Fedora Remix for WSL が使えるようになりました。

WSL の場合、Ubuntu や Docker の情報しか無くなかなか見つけられませんでしたが、こんな方法で解決するとは・・・という感想です。

Viewing all 96 articles
Browse latest View live