debian10系、debian11系でdocker build時にapt updateがAt least one invalid signature was encountered.というエラーを出す場合
tag: raspberrypi, debian11, debian, docker
エラーメッセージの例
Err:1 http://security.debian.org/debian-security bullseye-security InRelease At least one invalid signature was encountered.
■パターン1 古いイメージが手元に残っている場合
以下のコマンドを実行して使用していないイメージなどをクリアすると良いらしい。(手元では動くようにならなかった)
docker image prune -f docker container prune -f docker system prune -f # docker buildx を使っている場合のdocker builder のキャッシュ内容をクリア docker builder prune -f
■パターン2 arm32v7/debian:bullseye の場合、Raspberry Pi Debian 10 32bit版 Dockerfile内で apt update ができない
Linux Kernel の違いのため、arm32v7/debian の場合、debian10 host で debian11 のdockerイメージはビルドできない模様。
これはDocker Hostマシンをdebian11系にアップデートするしか対策が無いようだ。
Raspberry Pi OS は、2021/11/08からDebian11 Bullseyeベースになった模様。 ウチのラズパイ2号機はOS入れ替えしないとDebian11にならないか。 しかしラズパイの場合、OS入れ替えるよりもう1台買うか・・・という衝動の方が強いのが問題だww 8GBメモリ版買おうかな。
中綿入りトレーニングウェア購入
tag: 散歩
12月ともなると寒くてジャージで散歩するのは難しくなってきた。 風が無ければまだ行けるのだが、風が強い日はジャージを貫通して冷たい風が吹き込んでくるのを体感できる。 ジャージって意外に風通し良いんだな...。 そんなわけで、冬用の散歩ウェア購入。
おお。。。これはあったかい。風は通さないし保温性も良好。スキーウェアみたいな雰囲気。 これ着てランニングすると暑いけどw散歩用ならこれくらいで良い。
Log4jにゼロデイ脆弱性、任意のリモートコードを実行可能
tag: security, java
これは影響範囲広そうだな・・。 Log4j2の方みたいだが。 ログの内容に${jndi:ldap}とか${jndi:rmi}とか${jndi:iiop}とか${jndi:dns}みたいな文字列が混ぜられると解釈してダウンロードしたコードを実行してしまうようだ。 たとえば、HTTPアクセスのログに上のような文字列が含まれていると発症するらしい。
オレのwikiではlog4j2は使ってないけど、使ってたら即死だったな。
ウチのawsには12/13あたりから、ブラウザ名とかrefererに${jndi:ldap}を含むアクセスが出現しだした。
しかし、JNDI lookup 処理ってサーバからリモートコードをダウンロードして実行する処理だったのか? なんとも平和な時代のプロトコルだなぁ。
p.s.
場所によっては12/10あたりから攻撃来てたみたいやね。
Windows ハイパーバイザー プラットフォームとVirtualBox 6.1
tag: virtualbox, hyperv
Hyper-V アーキテクチャを有効にすると、Intel VT-xなどのCPUによる仮想化支援機構をHyper-V ハイパーバイザーが占有してしまう。そのため、以前はOracle VirtualBoxのVMが起動できないとか、Android エミュレーターがVMアクセラレーションに利用していたHAXMがインストールできないとかいった問題が発生していた。 それを回避するため、Hyper-V ハイパーバイザーの追加APIのようなものを公開し、VirtualBoxやAndroidエミュレーターはそのAPIを通して仮想化支援機構を利用できるようにした。これが、Windows ハイパーバイザー プラットフォームである。 というわけなので、WSL2やHyper-Vなどを使いつつ、VirtualBoxやAndroidエミュレーター(のVMアクセラレーション)も利用する場合に限り、この機能を有効にする必要がある。
ということらしい。
VirtualBox 6.1 以降ならWindows ハイパーバイザー プラットフォームを有効にしていなくても、動くことは動くがscpの転送速度が4MB/secとか遅い感じになる。
今更だが、[コントロールパネル]→[プログラムと機能]→[Windowsの機能の有効化または無効化]→[Windows ハイパーバイザー プラットフォーム]にチェックを入れたところ、scpの転送速度が150MB/secくらいに高速化したww
副作用は Windows用の X Server である vcxsrv 1.20.9.0 起動時に自PCのIPアドレスが取得できなくなる点かな? vcxsrv は 自PCのIPアドレス一覧を取得して bind & listen するのだが、これができなくなるので通信待ち受けしてない X Server が起動する。 このため ssh -X などを使って vagrant内仮想マシンの X11画面を Windows PC 側に表示する手が使えなくなった。
MobaXtermならX Serverはちゃんと動くので、しばらくはそれで回避かな。
Metal LB - Kubernetes用の bare metal 向け外部 load balaner の実装
tag: kubernetes, metallb
Load Balancer というと語弊があるけど、IPアドレス自動獲得&ARP公報みたいな役割。
インストール。
helm repo add metallb https://metallb.github.io/metallb helm repo update helm pull metallb/metallb cat > metallb-config-values.yaml << "EOF" configInline: address-pools: - name: default protocol: layer2 addresses: - 192.168.55.0/24 EOF helm install metallb metallb/metallb -f metallb-config-values.yaml
おお。便利だわ。
tag: host-vermeer
TSUKUMO BTO パソコン購入 (G-GEAR mini GI5A-V212/T)(Ryzen 5 5600X + Radeon RX 6600 XTモデル)
前回の購入は2017年5月だったのであれから5年、ついに次世代パソコン購入。
今回はmini型(といってもミドルタワー幅で高さ半分)を購入。 ミドルタワーケースだと重くて搬入と設置が大変なので。 (贅沢を言えばRaspBerry Pi 4くらいだと楽で良いのだがw) CPUは65W程度、グラボは150W程度から選択。 mini型ケースだと超大電力&超大型のパーツは搭載できないがこれくらいで良いだろう。
注文したのは月曜日の夜で、到着が金曜日の朝。かなり早い。
OS: Windows 10 Pro 64bit CPU: AMD Ryzen 5 5600X (6コア 12スレッド、定格3.7GHz Boost時最大4.6GHz) Mother: AMD B550 Mini-ITXマザーボード (ASUS ROG STRIX B550-I GAMING) Memory: 64GB (32GB x2枚) DDR4-3200 Video: AMD Radeon RX 6600 XT / 8GB (HDMI 、DisplayPort x3) SSD: 高速M.2 Gen3 1TB WD BLUE SN570 (読込最大 3500MB/s, 書込最大 3000MB/s, NVMe) HDD: 4TB SATA6Gbps対応 (Western Digital製 WD Blue) Case: G-GEAR mini ITXゲーミングケース (ブラック / 8M05) Power: 80PLUS GOLD認証 CWT製 GPS750S-T (定格750W) Total Price: 271,705円(税込)
グラボが高いよママン...。 GPUを汎用並列計算(ビットコイン掘り、機械学習、etc)に使えるように努力してきたグラボメーカー大勝利ってことかね。
さて、頑張って設置するぞー!
新マシン(vermeer)設定中
tag: host-vermeer
ホスト名vermeerはZen3の開発コードネームから採用。
まずは旧マシンからrobocopyでファイルコピー。 書き込み先はHDDのはずだが、タスクマネージャーから見るとネットワークは1Gbps近く(900Mbpsくらい)までいっている。 恐るべし新世代マシン。ついにHDDへの書き込みでギガビットネットワークがボトルネックになる時が来たか・・・。 家庭内LANのSwitching HUBはそろそろ新しいの考えないとだな。 お手頃な数GbpsクラスのHUBなんてあるのかな。 今時有線LAN引いてる人も珍しいだろうけどw
Ryzen 5 5600X + Windows 11 + Vagrant 2.2.19 + hyperv provider にて、Nested Virtualization はまだ利用できない模様
tag: ryzen, vermeer, vagrant, hyperv, windows11, host-vermeer
余談:今のvagrantってhyperv providerだけを使う場合にはOracle VirtualBox 不要なのね。
入れ子になった仮想化サポートをONにしたVagrantfileを使ってvagrant up でVMを作ると Ryzen 5 5600X + Windows 11 + Vagrant 2.2.19 + hyperv provider 環境にて、以下のエラーが表示された。
このプラットフォームでは入れ子になった仮想化がサポートされていないため、仮想マシンを起動できませんでした。仮想マシンに仮想化拡張機能を公開しないことを検討してください。
原因はVagrantfileにh.enable_virtualization_extensions = trueと書いてあること。 以下のような感じで false を指定すると、仮想マシンが起動する。
Vagrant.configure("2") do |config| config.vm.box = "generic/freebsd13" config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__exclude: [ ".git/" ] # master1 node config.vm.define "freebsd63" do |master1| master1.vm.hostname = "freebsd63.hyperv.local" master1.vm.provider "hyperv" do |h| # Ryzen 5 5600X では false にしないとダメ。nested virtualization はまだ動かないらしい。 2021.12.27 h.enable_virtualization_extensions = false h.maxmemory = 4096 h.memory = 4096 h.cpus = "2" end
Intel CPUだとKabylakes世代でもネストした仮想機能拡張をONにできていたが、Ryzenでは無理らしい。
仮想マシンの中に仮想マシンを作ろうとしている人は注意かも。
Windows 11ではRyzenでもできるようになるって話が上にあるけど、VM構成バージョンとやらが対応してないのかしら。
WSL2 インストール on Windows11
tag: wsl2, windows11, host-vermeer
WSL2のインストール方法がずいぶん簡単になる予定らしい。 今日試したら wsl --install だけだとうまくいかなかったけどw
以下、手元のインストール方法を記載。
# 最初はLinuxカーネルが入っていない状態 wsl --status # 既にWSL2を使っている人は、アップデートする。 wsl --update # Linuxカーネルを新しくした場合は1回shutdownする。まあ初回は何も起動していないんだけど。 wsl --shutdown # Linuxカーネルのバージョンが表示されるようになる wsl --status # Ubuntuのインストール wsl --install --distribution ubuntu # Ubuntuが起動したらユーザー名とパスワードを入力する。
Zoff で眼鏡2本購入
今回は運転免許用の眼鏡(V:1.0)と、パソコン用の眼鏡(V:0.8)の2本を購入。 1本あたり18800円。
30分程度で当日引き渡しって便利だわ。 レンズは作り置きの在庫から選んで当てはめているんだろうけど。
ファイル共有設定 on Windows11 / icacls-smb-share.ps1
tag: ファイル共有, windows11, net-use, host-vermeer
「パスワード保護共有」を有効にした場合は、アクセスされる側のパソコンのユーザーアカウントにパスワードが必要です。
システム エラー 1326 が発生しました。 ユーザ名、及びパスワードが正しいか確認します。これは同じユーザ名が登録されているが、パスワードが異なる2台のPCでファイル共有しようとした場合に発生します。
ふーむ。
今回の新マシン設定では共有フォルダの設定をする前に Microsoft アカウントに切り替えていたためか、ファイル共有を設定しても接続できなかった。
両方のマシンにて「ローカル ユーザー でのサインインに切り替える」を行ってローカルユーザーのパスワードを設定してから共有フォルダ設定をしたらうまくいった。
p.s.
「パスワード保護共有を有効にする」の場合、要するにユーザー名とパスワードさえ合っていればアクセス可能ってことなのかな。 Microsoftアカウント認証(スマホまで確認が来る)を使った方が強度が高いかもしれん...。
おまけ。
共有フォルダを設定するPowerShellスクリプト icacls-smb-share.ps1
# # ファイル共有する時に、NTFSファイル権限と、smb共有権限の付与を行う # # 2021.12.28 # ローカル アカウント (管理者) で実行しないとうまくいかない...。 # Microsoft アカウントでログイン中の場合は、ローカルアカウントに切り替えてログインする必要がある。 # ファイル共有するサーバ側、クライアント側、両方ともローカル アカウント (管理者) でサインインして、同じユーザーには同じパスワードを設定しておく必要がある。 # # https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?rid=417&PID=7711-3017 富士通Q&A - [Windows 11] 他のパソコンとフォルダーを共有する方法を教えてください。 - FMVサポート : 富士通パソコン # 「パスワード保護共有」を有効にした場合は、アクセスされる側のパソコンのユーザーアカウントにパスワードが必要です。 # # http://tooljp.com/windows/doc/net-use/net-use-error.html net use のエラーの原因と対処 # net use を使用した際のエラーコードとその内容解説 # # https://gihyo.jp/admin/feature/01/network-command/0001?page=2 Command-1 Windowsファイルサーバにアクセスできない:Windows管理者のためのネットワークコマンド実践テクニック|gihyo.jp … 技術評論社 # ファイル共有トラブルシューティングのテクニック解説 # # function f-icacls-smb-share-usage { Write-Output 'f-icacls-smb-share' Write-Output ' example: f-icacls-smb-share "--folder-path" "D:\SAMBA" "--share-name" "SAMBA" "--user-name" "george" "--user-password" "your_local_account_password"' } function f-icacls-smb-share { $FOLDER_PATH="" $SHARE_NAME="" $USER_NAME="" $USER_PASSWORD="" # microsoft account のパスワードではなく、ローカルアカウントのパスワードを設定すること $HOST_NAME="" # 引数解析 while ( $args.length -gt 0 ) { # get first arg and shift $a1, $args = $args; $a2, $rest = $args; if ( $a1 -eq "--folder-path" ) { # ディレクトリ名 $a1, $args = $args; $FOLDER_PATH=$a1 } elseif ( $a1 -eq "--share-name" ) { # 共有名 $a1, $args = $args; $SHARE_NAME=$a1 } elseif ( $a1 -eq "--user-name" ) { # ユーザー名 $a1, $args = $args; $USER_NAME=$a1 } elseif ( $a1 -eq "--user-password" ) { # パスワード(Windows ローカル アカウントのもの) $a1, $args = $args; $USER_PASSWORD=$a1 } else { Write-Output "unknown argument error $a1" return 1 } } # ホスト名取得 $HOST_NAME=$( hostname ) # パラメータのチェック Write-Output "FOLDER_PATH=${FOLDER_PATH}" Write-Output "SHARE_NAME=${SHARE_NAME}" Write-Output "USER_NAME=${USER_NAME}" Write-Output "USER_PASSWORD=${USER_PASSWORD}" Write-Output "HOST_NAME=${HOST_NAME}" if ( $FOLDER_PATH -eq "" ) { f-icacls-smb-share-usage Write-Output "FOLDER_PATH is not set." return 1 } if ( $SHARE_NAME -eq "" ) { f-icacls-smb-share-usage Write-Output "SHARE_NAME is not set." return 1 } if ( $USER_NAME -eq "" ) { f-icacls-smb-share-usage Write-Output "USER_NAME is not set." return 1 } if ( $USER_PASSWORD -eq "" ) { f-icacls-smb-share-usage Write-Output "USER_PASSWORD is not set." return 1 } if ( $HOST_NAME -eq "" ) { f-icacls-smb-share-usage Write-Output "HOST_NAME is not set." return 1 } #------------------------------------------------------------ # キャッシュのクリア # nbtstat -R nbtstat -n nbtstat -c ipconfig /flushdns #------------------------------------------------------------ # NTFS アクセス権限の設定 # # 共有フォルダの前に、NTFSへのアクセス権が無いとダメ。 # # 現在の設定状況を表示 icacls $FOLDER_PATH # フルアクセス許可を与える icacls "$FOLDER_PATH" /grant "${USER_NAME}:(OI)(CI)F" # 設定後の状況を表示 icacls $FOLDER_PATH #------------------------------------------------------------ # SMB共有 アクセス権限の設定 # # 共有の一覧の表示 net share # 共有アクセスの情報を表示 Get-SmbShare # 共有アクセスの情報を表示 Get-SmbShare | Get-SmbShareAccess # SMB共有削除 Remove-SmbShare -Name ${SHARE_NAME} -Force # SMB共有作成 New-SmbShare -Name $SHARE_NAME ` -Path $FOLDER_PATH ` -FullAccess ${HOST_NAME}\${USER_NAME} # 共有アクセスの情報を表示 Get-SmbShare # アクセス許可の状況を一覧表示 Get-SmbShareAccess -Name ${SHARE_NAME} #------------------------------------------------------------ # net use コマンドで接続してみる # # 接続テスト net use "\\${HOST_NAME}\IPC$" "/user:${USER_NAME}" "${USER_PASSWORD}" if ( $LASTEXITCODE -ne 0 ) { Write-Output "ERROR: net use \\${HOST_NAME}\IPC$ FAILED." ; return 1 } # テストが終わったら消しておく net use "\\${HOST_NAME}\IPC$" /delete # 接続テスト net use "\\${HOST_NAME}\${SHARE_NAME}" "/user:${USER_NAME}" "${USER_PASSWORD}" if ( $LASTEXITCODE -ne 0 ) { Write-Output "ERROR: net use \\${HOST_NAME}\${SHARE_NAME} FAILED." ; return 1 } # テストが終わったら消しておく net use "\\${HOST_NAME}\${SHARE_NAME}" /delete } f-icacls-smb-share $args # # end of file #
vagrantで仮想マシン操作しているとHDDが律速っぽい
vagrant(provider=hyperv)仮想マシンでコンテナ起動している間にタスクマネージャーで見物していると、HDDは100%張り付き、CPUは暇そうにしている。
SSD上に仮想ディスク作った方が良さそうだな。
今回は1TB SSDなので、100GBとか200GBくらい仮想マシンにもっていかれても問題ない。はず。
Windows Terminal 複数行ペースト時/5KiB以上の大きなテキストを貼り付けた時の警告を無効化する方法
tag: windows-terminal, windows11, windows10, host-vermeer
上の記事のまんまだけど、こちらにもコピーしておく。
複数行を貼り付ける際の警告を無効化する場合には、Windows Terminal の設定ファイル「settings.json」に "multiLinePasteWarning” に false を指定する。
"multiLinePasteWarning": false, // デフォルトは true
同時に実装された 5KiB 以上の大きなファイルを貼り付けた場合に出る警告を非表示にする場合には、"largePasteWarning" に false を指定する。
"largePasteWarning": false, // デフォルトは true
記述したら設定ファイルを保存するだけで Windows Terminal に設定が反映される。
これで警告は表示されなくなり、巨大なテキストの貼り付けが可能になる。
Windows 11 では WSL2 と WSL2g で X11 画面を表示できる
tag: windows11, wsl2, wsl2g, host-vermeer
Windows 11 からは WSL2g (Windows Subsystem for Linux GUI) という X11サーバが提供されるようになった。
WSL2をインストールすると、自動的に WSL2g がインストールされる。 おお。マジでWSL2からxeyesが起動するww
WSL2gはVcXsrvとは異なり、ポート6000で待っているというわけではなさそう。
vagrant + hypervで起動した別のVMからのX11画面はVcXsrvかMobaXtermで受信する形になりそう。
p.s.
WSL2を使うなら、コントロールパネル > Windowsの機能の有効化または無効化にて、「仮想マシンプラットフォーム」にチェックを入れる、という記事を見かけたことがあるが、ウチではWSL2インストール後に見てみたらチェック入ってなかった。 Windows 11の場合は wsl --install で必要な設定は全部やってくれるらしいので不要だったのかも? 一応チェックを入れて再起動しておいたけど。
新マシンの設定だいたい完了
tag: host-vermeer
だいたい何やってもCPUがヒマそうにしてて草。
手持ちのソフトの中ではCPU/GPU負荷が高いのはウルトラ設定のPSO2NGSかな。
サムネ画像作成している時の俺のwikiも頑張ればCPU負荷100%出せるけど。 (マルチスレッドの作成と実行はTomcat側が勝手にやるのでメモリをたくさん与えて複数のブラウザから同時要求すればガシガシマルチスレッドで走るので。)
それでは皆様よいお年を
335bytes