Pandora Pocket

IT系と日常系の備忘録。三日坊主。

これまでRaspberryPi上にISC DHCPをインストールして自宅内DHCPサーバーを運用してたんですが、USBメモリーブートのRaspberryPiだと長期間運用が厳しく、かといってこのためだけにUSB接続のSSDを導入するのももったいない。
今回仮想化プラットフォームのProxmoxを導入したので、この機会に環境を一新。

今回はただDHCPサーバーを構築するだけだとつまらない(?)ので、

  • DHCP機能
  • DNS機能
  • 広告ブロック機能
  • VPN機能

を持ったサーバーを立ち上げることに。

というわけで、AdGuard HomeをインストールしてDHCP、DNS、広告ブロックを行いつつ、Tailscaleで自宅の外から広告カットできるVPN接続を行える環境構築。

続きを読む

今回構築したProxmoxマシンは録画マシンも兼ねているため、大容量HDDを直接VMから読み書きできるようにしたい。

VMware ESXiの頃はRDMの設定を行って直接読み書きできるようにでき、10年近く前にブログ記事にまとめていた。

一年前にESXiサーバーを構築し、録画サーバーを仮想マシンとして運用しているのですが、録画ファイルを...
[はてなブックマークで表示]

Proxmoxでも同じように設定できたので覚書き。

続きを読む

ProxmoxではKVMを利用した仮想マシン作成だけでなく、LXCコンテナの作成も可能。

LXCはまるで仮想マシンのようにそれぞれのコンテナ単位で独立したOSをインストールして構築するわけではなく、一つのLinuxカーネルを利用して複数の独立した環境を作ることができるため、リソースの消費が少ないのが特徴。
またDockerとは違い1コンテナ当たり1プロセスというわけではないので、複数のプロセスを同時に動かせることがメリット。

Dockerはアプリケーションの隔離環境で、LXCは軽量な仮想マシン環境というイメージ。

続きを読む

これまでVMWare ESXiを利用して仮想環境を構築していたんですが、

  • ESXi 7.0からRealtekのNICドライバがインストールできない
    • 正確にはこれまでコミュニティが提供していたが、最新のドライバ形式に対応できない
  • 無償ESXiはTPM対応ができないか、手段が複雑

という問題があり、また今後も継続的に無償で使うことができない可能性も否定できないこともあり、そろそろ別の仮想化ソリューションを検討したいなぁと。

そんなわけでいろいろ調べたところ Proxmoxというソリューションが大変よさげだったので導入しました。

なお、今回は一旦ESXi上で作っていた仮想化環境をすべてふっ飛ばして一から作ることにしたので移行作業はなし。

続きを読む

Windows 11の再インストールをする際、OOBE画面の操作でいちいちUSB接続のマウスを使う必要があるのは面倒だなぁと思っていたところ、知り合いから良い方法を教えてもらったのでメモ。

OOBE画面では Shiftキーを押しながらF10を押すとコマンドプロンプトが起動する。

コマンドプロンプトで start ms-settings: を実行すると、Windowsの設定画面が表示されるので、あとは頑張ってキーボードでBluetooth接続すればOK。

ネットワークを切断した状態でOOBE画面を進めることができる oobe\bypassnro も別途覚えておくとローカルアカウントでセットアップしたいときに便利。

ウェブサイト構築中にちょっとはまったのでメモ。

Formタグの中にSubmitを行うボタンをおけない場合、 input="submit" のボタンをFormタグ内にhidden状態で記載し、Formの外のボタンを置きたい場所にラベルタグとfor属性を利用してボタンを設けるという方法がありますが、これだとEnter押下時にSubmitが走ってしまうという問題があったため、 HTMLFormElement.submit()を利用して回避。

ただ、これはMDNにも記載されている通りsubmitイベントが発生せず、制約検証も行われない問題が。

HTMLFormElement.reportValidity()

HTML5.1から HTMLFormElement.reportValidity() という制約検証を行うための機能が追加されてた模様。知らなかった・・・。

これを HTMLFormElement.submit() 実行前に呼び出して結果が true だった場合にだけsubmit処理させるようにしてやればOK。

reportValidity() はエラーが存在する場合、required などの制約検証に対するメッセージが該当のフォーム要素に表示されるそう。

似たようなもので checkValidity() があり、こちらは制約検証結果をtrueかfalseかで返すだけ。エラーメッセージは表示されないので、独自にメッセージを調整したい場合などには有用。