以下恥の記録です。
CentOS7がついにサポート切れなので、思い切ってUbuntu24.04に移行してみよう!ということで、とりあえずしょっぱなで出会ったトラブルをメモしてみました。
debian系をサーバとして使うのは何十年ぶりかしら。
- Ubuntu24.4がFujitsu TX1310 M1にインストールできない。
なんだかわかないけどエラーが発生しましたなどと言って中断するのはやっぱり「はやくういんどうずになりたい」って感じマシマシな、実にubuntuらしいしぐさだと思いました。
-> サーバ機のファームウェアを1.12.0にしてUEFI ONLYにしてGPTにしないとインストール不可でした。
幸先の良い出だしです。 - インストーラからネットワークの設定ができない。
netplanの定義体が4つもできました。
-> 結局インストール完了後に手動で書き直しました。 - 20年来コンパイルしては使い続けてきたCプログラムがコンパイルはできるがリンカでエラーとなる
-> MakefileのGCCに与える引数の順番を変更で通りました。
なんだそれ~いまさらそんな変更するの?と思わず声に出ました。 - CentOS7のmariadbからmysqldumpでdumpしたファイルからmysqlへリストアするとテーブル作成時にtimestamp(6)関連が全部エラーになる
-> dumpfileのtimestamp(6)から(6)を取っ払っちまえ - mysqldumpでdumpしたファイルからmysqlへリストアしたあとに何かしようとするとrootでもアクセス権がどうとかでなぜか怒られる
-> dumpファイルをrestoreした際にmysqlの管理用テーブルをdropしてdump元の古い定義でcreate tableしてしまったせい。見た目は一見正しいけどリストア先にとっては正常なデータじゃないのでエラーとなる。mysqldumpでダンプしたファイルのうち、use mysql;のテーブルをリストアしないようにする。特にmysql.columns_privやuserテーブル。 - 一度mysqlを全部クリアして(rm -fr /var/mysql ;mysqld --initialize )再作成したのにユーザが追加できない。
-> select * from mysql.user;しても確かにいない(これから追加したい)ユーザーをdrop userしてからcreate userすると解決した。 - /var/runにあるファイルが実行できない
->よく見るとmount時にnoexec属性が付与されていた
それは正しいように思いますので属性を外さずに/dev/shmに移動してみました - 移動後、なぜか気づいたら /dev/shm にあるファイルの一部が消えてなくなっている
/etc/systemd/logind.conf の RemoveIPC の値がyesなので「システムユーザー」以外のファイルが消去されることがわかりました。
-> そのため設定を変更せずに/var配下に新規にtmpfsでmountして配置。これもIPCなはずなのにRemoveIPC がyesのままでも消されませぬ。なんと深い謎。。。
# なお「システムユーザー」とは今どきのubuntuではuidが1000未満のユーザのことを指すらしいです。古代から引き継いでると普通のユーザのuidが100から(sunosとかそうだったっけ)だったり、比較的新しくても500だったりするので要注意。 - Super I/Oのカーネルモジュールが全然用意されていない
coretempだけでいいという割り切り思想かしら。
-> 面倒なので lm-sensorsをインストールしてsch5636を取り寄せて手動で /etc/modules-load.d/sch5636.conf ファイルを作成してロードさせるようにしました。 - dnsmasqを使用したいのにport53がつかまれている
172.0.0.53が /etc/resolv.conf に定義されていて、それのあて先は systemd-resolved になっていました。
こういうふうに小手先でごちゃごちゃやり始めているディストリの人たちからは距離を置きたいので、システムの設定を極力いじりたくありません。
-> そこで、netplanでNICに対してDNSに自分自身のIPアドレスを指定して、あとはdnsmasqから本来のDNSに飛ばすようにしました。
例:
このサーバのIPアドレス: 192.168.0.100 <- netplanのDNSに指定
DNSサーバのIPアドレス: 1.2.3.4 <- dnsmasq.conf に server=1.2.3.4 を追記
(dnsmasq.confを編集せず/etc/dnsmasq.d/配下にconfを作るとubuntuしぐさ) - phpの時刻がutcとかmbstring非対応とかperlの仕様変更とか
->confの変更やソースの変更で対処。
perl ってまだ枯れ切ってなかったんだなあとしみじみ。 - apache2の設定ファイルが細切れのぶつ切れでどこになにが定義されているのかわからない
->ubuntuしぐさなので仕方ありません。grep -r しまくってa2enxxxx。
地味に時間がかかります。
ついでに言うとapache2のlogファイル名が_logでなくて.logで、logs/でなくて絶対パス指定。こだわるエネルギーの使いどころに興味津々です。 - webalizerの画像内の日本語が化ける
->面倒なので /usr/share/locale/ja/LC_MESSAGES/webalizer.mo をrenameして英語化してごまかしました。
テキストも化けるんですが、これはwebalizer.confでHTMLHead <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
で化けなくなります。むろん画像には効果はありません。
そこでtruetypeフォントを指定しましたがやはり化けます。
moファイルはutf8なのですが、ビルドしたgdライブラリがsjisのみなのかな?
なお、ちゃんとデフォルトdaccess_logでなくaccess.logを参照するように構成されている親切設計です。 - sambaでユーザ認証を必要とするディレクトリにアクセスできない
-> sambaのuserのsidをwindowsからアクセスするユーザのsidと一致させるとアクセス可能となりました。
一致させない場合、sambaでアクセスするhomedirはchmod 750にしないとアクセスできないという不思議な現象も。sidを一致させたら755でもアクセス可能になりました。当環境がSMB3だからかしら? - sambaのguest userがcentos7ではnobody(99)
->adduserでsamba-guestユーザを作成してuid/gidが99:99のファイルをchown。
find . -uid 99 -print | xargs chown yyはうまくいかないので -exec chown yy {} \; を使うと吉です。 - sshすると/etc/motdの内容が2回表示される
さすがにあほすぎる。。。とにかく広告を見せたくて「はやくういんどぅずになりたいでござる」病にかかってるのがよくわかります。GUIだけにしとけばいいのに
-> 承知の上でやってきた当方としてはubuntu側をいじらずに /etc/ssh/sshd_config でPrintMotd パラメータをnoにして対処しました。
なんだかまだあったと思いますが、ざっとこんな感じです。
ありがとうCentOS7さようならCentOS7
こんにちはUbuntu24。
以上、お恥ずかしい限りです。
ここまでお読みいただいてありがとうございました。
0 件のコメント:
コメントを投稿