目次: 自宅サーバー
Linux Kernelのlongtermバージョンが代替わりしてからしばらく経ちますが、更新をサボりにサボっていました。重い腰を上げて自宅サーバーのLinux 6.1をLinux 6.6に更新したところ、起動しなくなりました。悲しい。
Linux 6.1に戻せば起動しますからHWの故障などではないです。Kernelコンフィグが悪さをしていそうで、ドライバの有無を色々疑ったんですが、結果的にはCONFIG_UNIXがtristate(設定値にy/n/mを取れる)からbool(設定値にy/nを取れる)が原因でした。こんな経緯で起動しなくなったと思われます。
CONFIG_UNIX=mにできなくなったことなんて知りませんでした。気づけたのはmake oldconfigのおかげです。
# make oldconfig .config:917:warning: symbol value 'm' invalid for UNIX ★★エラーが出ている★★ * * Restart config... * * * Configure standard kernel features (expert users) * Configure standard kernel features (expert users) (EXPERT) [N/y/?] n Load all symbols for debugging/ksymoops (KALLSYMS) [Y/?] y Test the basic functions and performance of kallsyms (KALLSYMS_SELFTEST) [N/y/?] (NEW)
私がいつもやっている手順ですと
こんな感じなので、最初はCONFIG_UNIX=mに対するエラーに全く気づいていませんでした。もしmake oldconfigが存在しなかったら迷宮入りしていたと思います。
せっかくなので仕様が変更されたポイントを調べます。git annotateでnet/unix/Kconfigを見て、変更のもとになったコミットを調べます。コミットログは下記です。
commit 97154bcf4d1b7cabefec8a72cff5fbb91d5afb7b Author: Alexander Mikhalitsyn <alexander@mihalicyn.com> Date: Thu Jun 8 22:26:28 2023 +0200 af_unix: Kconfig: make CONFIG_UNIX bool Let's make CONFIG_UNIX a bool instead of a tristate. We've decided to do that during discussion about SCM_PIDFD patchset [1]. [1] https://lore.kernel.org/lkml/20230524081933.44dc8bea@kernel.org/ ...以下略...
このコミットが本線に取り込まれたのはLinux 6.5みたいです。
$ cd linux $ git log v6.4...v6.5 | grep 97154bcf4d1b7 commit 97154bcf4d1b7cabefec8a72cff5fbb91d5afb7b
ちなみにLinux 6.1の次のLongterm kernelはLinux 6.6ですから、今日でなくてもいつか私はこの問題にハマる運命だったと言えましょう……。
今日?あたりからtwitter.comにアクセスするとx.comにリダイレクトされるようになりました。twitter.comとの違いとしては、x.comはFirefoxにてTracking contentをブロックしているとこんなエラーが出て全く使えません。
Tracking contentをブロックしたときのx.comのエラー
エラーを回避するにはEnhanced Tracking ProtectionのException設定にx.comを追加します。
そんなにトラッキングしたいんですかね?x.comはイケてないな……。
Xは以前からTwitterという文字を滅ぼしたがっているようで、先月辺り(?)からツイートにあるtwitter.comをx.comに置換するようになりました。そのせいで下記のようにx.comとtwitter.comが両方入っているニュースがおかしなことになっています。
twitter.comをx.comに置換したためにツイートと代替テキストが食い違う様子
しかも画像の代替テキストは置換が行われないため、ツイートと画像の代替テキストが食い違うおかしな現象まで発生しています。twitter.comドメインを手放さない限り、どうせリダイレクトするのであれば一括置換する必要なかったんじゃないの……?手放したら手放したで悪用されまくると思いますし。
目次: 自宅サーバー
Localeの設定方法は未だによくわかってないのですが、最近ROCK 3CのDebian 11 (bullseye)でLocaleを設定したときの方法をメモしておきます。
# localedef -i /usr/share/i18n/locales/ja_JP -f UTF-8 /usr/lib/locale/ja_JP.UTF-8 # localedef --add-to-archive /usr/lib/locale/ja_JP.UTF-8 # localectl set-locale LANG=ja_JP.UTF-8
これで切り替わりました。作成、登録、選択という感じ?です。Cロケールに戻すときはLANG=C.UTF-8です。
一緒に変えたくなるであろうタイムゾーンの設定方法も書いておきます。
# timedatectl set-timezone Asia/Tokyo
作成や登録の手間はなく簡単です。UTCに戻すときはEtc/UTCと指定します。注意点として、
# timedatectl set-timezone asia/Tokyo Failed to set time zone: Invalid or not installed time zone 'asia/Tokyo'
タイムゾーン名は大文字小文字を区別するのでTypoにご注意ください。私は最初asia/Tokyoと打っているのに気づかずエラーになって困惑しました……。
目次: 自宅サーバー
プロキシのアドレスが拠点やゾーンによって異なる場合があります。プロキシを使用するサービスが1つならそのサービスの設定ファイルを書き換えれば良いのですが、サービスが複数ある場合は各サービスのプロキシ設定を全て書き換えて回る必要があって面倒です。
このようなときはcntlm(Cntlm Authentication Proxy - SourceForge.net)にてローカルにプロキシを置くと便利です。各サービスは常にcntlmをプロキシとして設定しておけば良く、cntlmの設定ファイルを書き換えるだけでプロキシ設定の変更に対応できます。
このときの通信経路は[各サービス] - [cntlm] - [プロキシ] - [インターネット]となります。
ちなみにcntlmは認証やトンネリングに対応している高機能なプロキシで、設定もたくさんあります。が、プロキシの中継をするだけなら設定は2行です。
#/etc/cntlm.conf
Proxy 192.168.1.1:8080
...
Listen 172.17.0.1:3128
反映方法は、
# systemctl restart cntlm.service
確認するときは、環境変数にcntlmのListenに指定したアドレスとポートを設定し、プロキシを必要とするソフトウェアが正常に動作するか見ると良いでしょう。
$ export http_proxy="172.17.0.1:3128" $ export https_proxy="172.17.0.1:3128" $ (httpを使用するコマンド、curlなどが動作することを確かめる)
各サービスのプロキシ設定も同様です。例えばDockerなら、
#/etc/systemd/system/docker.service.d/http-proxy.conf [Service] Environment="http_proxy=http://172.17.0.1:3128/" Environment="https_proxy=http://172.17.0.1:3128/"
こんな感じです。Dockerのプロキシ設定、確認方法は以前(2024年5月13日の日記参照)紹介したのでそちらをご覧ください。
目次: 自宅サーバー
Dockerの設定はいつも忘れますね。メモしておきます。
企業内ネットワークなど、Docker pullでイメージをダウンロードしてくるときにプロキシを参照したいときがあります。systemdの設定で指定できるようです。
#/etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="http_proxy=http://192.168.1.1:8080/"
Environment="https_proxy=http://192.168.1.1:8080/"
この設定ファイルが存在しないときは、ディレクトリと設定ファイルを作成してください。反映方法は、
# systemctl daemon-reload # systemctl restart docker.service
確認方法は、
# systemctl status docker.service docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset> Drop-In: /etc/systemd/system/docker.service.d `- http-proxy.conf ★Drop-Inの行が出現していればOK
設定ファイルの場所がややこしい以外はそんなに難しくないですね。
< | 2024 | > | ||||
<< | < | 05 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 | - |
合計:
本日: