変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

2025 / 3月

[AlmaLinux]phpMyAdmin後処理

まずは定番(インポート用)

memory_limit = 128M
post_max_size = 128M
upload_max_filesize = 128M

サービスを切り直し

# systemctl reload httpd
# systemctl restart mariadb

但し、php-fpmもインストしていたら、php-fpmもreloadが必要。

# systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
     Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; preset: disabled)
     Active: active (running) since Thu 2025-03-13 23:06:00 JST; 3min 54s ago
   Main PID: 8200 (php-fpm)
     Status: "Processes active: 0, idle: 5, Requests: 5, slow: 0, Traffic: 0req/sec"
      Tasks: 6 (limit: 29552)
     Memory: 38.8M
        CPU: 1.253s
     CGroup: /system.slice/php-fpm.service
             ├─8200 "php-fpm: master process (/etc/php-fpm.conf)"
             ├─8201 "php-fpm: pool www"
             ├─8202 "php-fpm: pool www"
             ├─8203 "php-fpm: pool www"
             ├─8204 "php-fpm: pool www"
             └─8205 "php-fpm: pool www"

 3月 13 23:06:00 ssiscirine.warlander.local systemd[1]: Starting The PHP FastCGI Process Manager...
 3月 13 23:06:00 ssiscirine.warlander.local systemd[1]: Started The PHP FastCGI Process Manager.
# systemctl reload httpd.service
# systemctl reload php-fpm.service

mariaDBにも

# mysql -u root
MariaDB [(none)]> show global variables like '%timeout%';
+---------------------------------------+----------+
| Variable_name                         | Value    |
+---------------------------------------+----------+
| connect_timeout                       | 10       |
| deadlock_timeout_long                 | 50000000 |
| deadlock_timeout_short                | 10000    |
| delayed_insert_timeout                | 300      |
| idle_readonly_transaction_timeout     | 0        |
| idle_transaction_timeout              | 0        |
| idle_write_transaction_timeout        | 0        |
| innodb_flush_log_at_timeout           | 1        |
| innodb_lock_wait_timeout              | 50       |
| innodb_rollback_on_timeout            | OFF      |
| interactive_timeout                   | 28800    |
| lock_wait_timeout                     | 86400    |
| net_read_timeout                      | 30       |
| net_write_timeout                     | 60       |
| rpl_semi_sync_master_timeout          | 10000    |
| rpl_semi_sync_slave_kill_conn_timeout | 5        |
| slave_net_timeout                     | 60       |
| thread_pool_idle_timeout              | 60       |
| wait_timeout                          | 28800    |
+---------------------------------------+----------+
19 rows in set (0.003 sec)

でもphpMyAdminとは無関係見たいなのでコマンドラインからインポートした方がいいかも

# mysql {データベース名} -u root < /tmp/******.sql 
しばらくすると終わる(笑


[AlmaLinux]仮想マシンクライアントを作る

まず・・・仮想マシンを作る前にネットワークにブリッジを追加します。

  • cockpit画面左の「ネットワーキング」
    • 画面中央の「インターフェース」
      • 【ブリッジの追加】のボタンを押す

基本的に修正無しで【追加】ボタンを押す。

名前がenp3s0からbridgr0に変り設定内容も変わる。

ネットワーク設定ができたので仮想マシンを作成する。

  • cockpit画面左の「仮想マシン」
    • 画面中央の「仮想マシン」
      • 【仮想マシンの作成】ボタンを押す
  • 「名前」を入力(適当)
  • 「オペレーションシステム」で「AlmaLinux 9」を選択
  • 「ストレージの制限」でサイズを入力(適宜)
  • 「メモリ」でサイズを入力(適宜)
  • ネットワーク設定の確認のため【作成して編集する】ボタンを押す
  • cockpit画面左の「仮想マシン」
    • 画面中央の「仮想マシン」
      • 作成した仮想マシンの名前のリンクを選択
      • 画面を下へスクロールし「ネットワークインターフェース」を表示

という感じ(タイプがbridge、ソースがbridge0)になっていればOK(ハズ

  • 画面を上にスクロール
  • 【インストール】ボタンを押す
  • 長いインストールの始まり始まり始まり始まり
    • 途中「ネットワーク」画面で

と希望するセグメントのIPアドレスになっていれば成功です。



[AlmaLinux]iSCSIデバイスを使う

NASでターゲットの使用許可したIQNを Linux側のIQNとして設定する

# dnf -y install iscsi-initiator-utils

# vi /etc/iscsi/initiatorname.iscsi
InitiatorName = {Linux側のIQN名}

NASに作成したiSCSIデバイスをLinuxから探してみる

# iscsiadm -m discovery -t sendtargets -p {NASのIPアドレス:ポート} ※{ポートは3260}
{NASのIPアドレス:ポート},1 {ターゲット名1}  ※ターゲット名形式:iqn.yyyy-mm.naming-authority:uniqueName
・・・
{NASのIPアドレス:ポート},1 {ターゲット名x} ←今回のターゲット
・・・
{NASのIPアドレス:ポート},1 {ターゲット名n}

安易に見つかった全ターゲットにログインさせてみると・・・

# iscsiadm -m node --login

待ち時間も長いし失敗すると結果も怪しいので

使用するターゲットのみログインする

# iscsiadm --mode node --targetname {ターゲット名x} --portal {NASのIPアドレス:ポート} --login
Logging in to [iface: default, target: {ターゲット名x}, portal: {NASのIPアドレス:ポート}]
Login to [iface: default, target: {ターゲット名x}, portal: {NASのIPアドレス:ポート}] successful.
確認
# iscsiadm -m session -o show
tcp: [2] {NASのIPアドレス:ポート},1 {ターゲット名x} (non-flash)

# cat /proc/partitions
major minor  #blocks  name

   8        0  117220824 sda
   8        1     614400 sda1
   8        2    1048576 sda2
   8        3  115556352 sda3
 253        0   72294400 dm-0
 253        1    7958528 dm-1
 253        2   35299328 dm-2
   8       16  134217728 sdb
   8       17  134201344 sdb1

ログインしたターゲットにファイルシステムを作成する

# parted --script /dev/sdb "mklabel gpt"
# parted --script /dev/sdb "mkpart primary 0% 100%"
# mkfs.xfs /dev/sdb1
mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=8387584 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=33550336, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

マウントしてみる
# mkdir /mnt/kvm
# mount /dev/sdb1 /mnt/kvm

確認
# df -hT
Filesystem                           Type      Size  Used Avail Use% Mounted on
・・・
/dev/sdb1                            xfs       128G  3.1G  125G   3% /mnt/kvm ※iSCSIのサイズになってる
・・・

ファイルシステムのタイプは環境依存なので調べてみる ※上のdf -Tでも判る

# mount -l
・・・
/dev/sdb1 on /mnt/kvm type xfs (・・・)

自動ログインの設定をする

# iscsiadm -m node -T {ターゲット名} -o show | grep startup
node.startup = automatic
node.conn[0].startup = manual      {両方automaticでないとダメらしい}

起動時は手動になっているので自動に変更
# iscsiadm -m node -T {ターゲット名} -o update -n node.conn[0].startup -v automatic

確認
# iscsiadm -m node -T {ターゲット名} -o show | grep node.startup
node.startup = automatic
node.conn[0].startup = automatic

/etc/fstabにも起動時マウントの指定を追加する

#
# /etc/fstab
# Created by anaconda on Wed Mar 12 20:38:55 2025
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/almalinux_*********-root /                       xfs     defaults        0 0
UUID=********-****-****-****-************ /boot              xfs     defaults        0 0
/dev/mapper/almalinux_*********-home /home                   xfs     defaults        0 0
/dev/mapper/almalinux_********-swap none                     swap    defaults        0 0
/dev/sdb1                            /mnt/kvm                xfs     _netdev         0 0

で、何に使うかと云えば

# rmdir /var/lib/libvirt/images           {imagesディレクトリィを削除し忘れると・・・・}
# ln -s /mnt/kvm /var/lib/libvirt/images  {imagesディレクトリィの下に kvm -> /mnt/kvm が出来てしまう}

本当はユーザ/パスワード指定してログインした方がいいし。CHAPも使った方がいい。

 vi /etc/iscsi/iscsid.conf
# CHAP有効化
node.session.auth.authmethod = CHAP
# iSCSI ターゲットで設定したユーザー名とパスワードを設定
node.session.auth.username = {ユーザ名}
node.session.auth.password = {パスワード}


[AlmaLinux9.5]インスト後処理(仮想マシンのホスト用)

Rufusを使ってAlmaLinux-9.5-x86_64-minimal.isoをUSBメモリに入れてBlog機にインスト。

https://almalinux.org/ja/get-almalinux

https://rufus.ie/ja

USBメモリのパーテーションはGBTの方がちょっと速い。

※MBRの方はJ1900ではブートに失敗したかと思うほど、カーネルの進行表示が出るまでが長すぎ。

パパッとインストした後は・・・

まず邪魔なSELINUXをおふる。

# grubby --update-kernel ALL --args selinux=0
# reboot   {カーネルのパラメータの変更だけだから}

何かと便利なcockpitをインスト

# dnf -y install cockpit {これをインストしておけば、後はブラウザでOK}
# vi /etc/cockpit/disallowed-users
 ### root  {rootも使える様にする}
{サービスを起動する}
# systemctl start cockpit.socket
# systemctl enable cockpit.socket
Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket → /usr/lib/systemd/system/cockpit.socket.
{rootで端末を使える様にする}
# vi /etc/ssh/sshd_config
PermitRootLogin yes #を追加
# systemctl restart sshd.service

これでパッケージ更新もcockpitからできると思ったら不調なので、

端末から

# dnf update

cockpit画面から

  • 画面左の「アプリケーション」を選択
    • 画面中央の「アプリケーション」で
      • 「マシン」と「ストレージ」の【インストール】ボタンを押す

仮装マシンメニューを開くと

と表示するので

# dnf install qemu-kvm libvirt virt-install
# systemctl start libvirtd
Created symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service → /usr/lib/systemd/system/libvirtd.service.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd.socket → /usr/lib/systemd/system/libvirtd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd-ro.socket → /usr/lib/systemd/system/libvirtd-ro.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd-admin.socket → /usr/lib/systemd/system/libvirtd-admin.socket.
# systemctl enable libvirtd
# virt-host-validate
  QEMU: Checking for hardware virtualization                                 : PASS
  QEMU: Checking if device '/dev/kvm' exists                                 : PASS
  QEMU: Checking if device '/dev/kvm' is accessible                          : PASS
  QEMU: Checking if device '/dev/vhost-net' exists                           : PASS
  QEMU: Checking if device '/dev/net/tun' exists                             : PASS
  QEMU: Checking for cgroup 'cpu' controller support                         : PASS
  QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
  QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
  QEMU: Checking for cgroup 'memory' controller support                      : PASS
  QEMU: Checking for cgroup 'devices' controller support                     : PASS
  QEMU: Checking for cgroup 'blkio' controller support                       : PASS
  QEMU: Checking for device assignment IOMMU support                         : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform)
  QEMU: Checking for secure guest support                                    : WARN (Unknown if this platform has Secure Guest support)

IOMMUは、CPUがJ1900だからIntel語でVT-dは未搭載なので無視。

secure guest supportは、Intel cpuはどれもWARNっぽい。

仮想マシンAlmaLinux9.5(CPU:2コア、メモリ:3GB、ディスク:10GB)が作れたからOKとする。

後、仮想マシンの「ネットワーク」は仮想LAN用で外から見えないLANなので使わない。



[AlmaLinux]KVMからHyper-Vに移行

単にqcow2ファイルをvhdxファイルにコンバートすればいいのかなと思ったら

# qemu-img convert -p -f qcow2 -O vhdx {qcow2ファイル名} {vhdxファイル名}

起動に失敗した。

Linux起動時にgrub2の画面でカーネルを選択後、

/bootの下のinitramfsファイルを読んで一時的にファイルシステムとして使用されるが

フルセットでは重いからインストーラは

# dracut --kver {カーネル名} -f -v

で必須なドライバを見繕ったinitramfsファイルをカーネルごとに作成している。

つまり、KVMで作成したVMはKVM環境のドライバしか入っていないので、そのままHyper-Vに移行してもドライバ不足で何もできなくなる。

仕方が無いので、KVMで動いている状況下で

# dracut --kver $(uname -r) -f --add-drivers "hv_vmbus hv_storvsc hv_netvsc hv_utils hv_balloon hyperv-keyboard hyperv_fb hid-hyperv"

Hyper-V用のinitramfsファイルを作成する必要がある。

またネットワークの状況も違い

# nmcli con show
NAME    UUID                                  TYPE      DEVICE 
virbr0  63189c34-2fc4-48f8-adc8-8a631ab7e98c  bridge    virbr0
ens2    dc75b52c-b3eb-4fe3-9027-7983b30c0ed5  ethernet  --     
ens3    e18ddd44-7abe-4297-b16f-919c7cd32430  ethernet  -- 

Hyper-Vではブリッジではなくeth0に繋がる仕組みなので、

nmcli –offline connection コマンドでとりあえずファイルを作り

# nmcli --offline connection add type ethernet con-name eth0 ipv4.address 192.0.2.1/24 ipv4.dns 192.0.2.200 ipv4.method manual > /etc/NetworkManager/system-connections/eth0.nmconnection

Hyper-V上で作成したAlmaLinux9.5VMを見ながら一部コピペ

[connection]
id=eth0
uuid=20f2b6eb-7e6c-473c-b362-4d390d16e5a9    ※AlmaLinux9.5VMからコピペ
type=ethernet
autoconnect-priority=-999                    ※AlmaLinux9.5VMからコピペ
interface-name=eth0
timestamp=1741709046                         ※AlmaLinux9.5VMからコピペ

[ethernet]

[ipv4]
method=auto                                  ※DHCPモード

[ipv6]
addr-gen-mode=eui64                          ※AlmaLinux9.5VMからコピペ
method=auto

[proxy]

と書き換え

# chmod 600 eth0.nmconnection 
# chown root:root eth0.nmconnection
# systemctl start NetworkManager-dispatcher.service 
# reboot

再起動後は

# nmcli con show
NAME    UUID                                  TYPE      DEVICE 
eth0    20f2b6eb-7e6c-473c-b362-4d390d16e5a9  ethernet  eth0   ※これが欲しかった
virbr0  63189c34-2fc4-48f8-adc8-8a631ab7e98c  bridge    virbr0 ※多分要らない
ens2    dc75b52c-b3eb-4fe3-9027-7983b30c0ed5  ethernet  --     
ens3    e18ddd44-7abe-4297-b16f-919c7cd32430  ethernet  -- 

となり何とかなった。

不要なvirbr0は消した方がいいだろう。

また、起動状態を見たい場合は

grub2の画面で[e]キーを押して設定を一時的に修正しctrl+xで起動。

起動時に出てくる

probing edd (edd=off to disable)... ok

は、カーネルのオプションに

edd=off

を追加すると消える。

また、カーネルのオプショのconsole=以降を

console=tty0 console=ttyS0,115200

に変えるとコンソールに普通に起動の進行状況が表示される

永続的に変えたい場合は /etc/default/grub のGRUB_CMDLINE_LINUXの行を

修正前
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap console=ttyS0,115200n8"
修正後
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap console=tty0 console=ttyS0,115200n8 edd=off"

とエディタで書換え

# grub2-mkconfig -o /boot/grub2/grub.cfg

でgrub2が使う設定を更新できるらしい。



「AlmaLinux8」アップデート失敗

アップデートに失敗しました

再起動してください。と表示されたので再起動すると・・・

initramfs-4.18.0-553.42.1.el8_10.x86_64.img not found

となってshellのプロンプトまで到達しなかった。

仕方が無いのでレスキュー版で起動すると、

kernel panic!

仕方が無いので3つあるkernelを順に起動すると

  • AlmaLinux (4.18.0-553.40.1.el8_10.x86_64) 8.10
  • AlmaLinux (4.18.0-553.36.1.el8_10.x86_64) 8.10

で起動できた。

とりあえず2か3番目で自動起動しようとGRUB_SAVEDEFAULT=trueを追加してみた・・・

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/rooot rd.lvm.lv=cl/swap console=ttyS0,115200n8"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
grub2-mkconfig -o /boot/grub2/grub.cfg

したけど36を指定して起動した後に再起動しても、やはり先頭の42を起動してしまう。

無駄だったみたいなので戻す。

ちゃんと直すしかないのか orz

失敗するのは最新の

  • AlmaLinux (4.18.0-553.42.1.el8_10.x86_64) 8.10

だけなのでとりあえず、ls -l /boot/init*すると

# ls -l init*
-rw-------. 1 root root 65479600  2月  3  2020 initramfs-0-rescue-888ffa2eb9d5445599d39810727386a4.img
-rw-------  1 root root 51083878  1月 24 06:34 initramfs-4.18.0-553.36.1.el8_10.x86_64.img
-rw-------  1 root root 32029184  1月 29 07:24 initramfs-4.18.0-553.36.1.el8_10.x86_64kdump.img
-rw-------  1 root root 51083826  2月 13 04:15 initramfs-4.18.0-553.40.1.el8_10.x86_64.img
-rw-------  1 root root 32025088  2月 13 04:22 initramfs-4.18.0-553.40.1.el8_10.x86_64kdump.img

36と40が同じサイズ(注:そのときにはそう見えた)だから、

42でもサイズが同じならコピればすむかな?と36のファイルを42でコピして起動すると

[    4.513259] dracut-pre-udev[294]: modprobe: FATAL: Module dm_mod not found in directory /lib/modules/4.18.0-553.42.1.el8_10.x86_64

使うファイル名にカーネルのバージョンが入っているのか・・・orz

initramfs-4.18.0-553.42.1.el8_10.x86_64.imgの中に

/lib/modules/4.18.0-553.42.1.el8_10.x86_64が無く困ってるようだ。

諦めてinitramfsファイルを再構築することにする

dracut --force --kver 4.18.0-553.42.1.el8_10.x86_64 /boot/initramfs-4.18.0-553.42.1.el8_10.x86_64.img

–force は実行フラグ

–kverはカーネルのバージョンで普通は uname -r でチェックできるけど、その42では動かないので

{36上で調べると}
# uname -r
4.18.0-553.36.1.el8_10.x86_64
{だから}
4.18.0-553.42.1.el8_10.x86_64
{だろう}

/boot/initramfs-4.18.0-553.42.1.el8_10.x86_64.imgは出力先ファイル名

これで42で起動できるようになったが、

レスキューが動かないと思えてしまったのはカーネルダンプの起動エラーの後、コンソールのエスケープシーケンスが壊れログインプロンプトがそれっぽく見えなかったせいだった。

その後

virt-sparsifyでKVMイメージを圧縮して約半分のサイズにしたら、

# virt-sparsify /var/lib/libvirt/images/AlmaLinux9.qcow2 /var/lib/libvirt/images/AlmaLinux9new.qcow2
は、$TMPDIRに一旦作業エリアを確保するし、コピー先ファイルも一旦同じサイズで作るみたいで空き容量は倍以上必要っぽい
また、未使用エリアのクリアが元になってエラーが出ることもあるようだ

クリアーし過ぎてエラったみたいなので

再び同じdracutコマンドでinitramfsを再構築し再起動したらちゃんと起動した。

#qemu-img convert -c -f qcow2 -O qcow2 /var/lib/libvirt/images/AlmaLinux9{,new}.qcow2
は、必要なトコだけファイルを作るので助かるけど圧縮率がイマイチなことも多々ある



top