2025年2月24日月曜日

Rocky Linux 9.4 でソフトウエアRAIDを使う

 mdadm を使います.1TB の nvme-SSD を3枚使って RAID5 を組もうと思う.

gnome-disks で GUI を使ってデバイスを調べてみる.
  1. $ gnome-disks
 

/dev/nvme2n1 /dev/nvme1n1 /dev/nvme0n1 の3つが対象らしい.mdadm で デバイス3つからなる RAID5 アレイを作成してみる.
  1. $ sudo mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/nvme2n1 /dev/nvme1n1 /dev/nvme0n1
  2. mdadm: Defaulting to version 1.2 metadata
  3. mdadm: array /dev/md1 started.
 

詳細を見てみる.
  1. $ sudo mdadm --detail /dev/md1
  2. /dev/md1:
  3. Version : 1.2
  4. Creation Time : Sun Feb 23 18:43:49 2025
  5. Raid Level : raid5
  6. Array Size : 1953260544 (1862.77 GiB 2000.14 GB)
  7. Used Dev Size : 976630272 (931.39 GiB 1000.07 GB)
  8. Raid Devices : 3
  9. Total Devices : 3
  10. Persistence : Superblock is persistent
  11.  
  12. Intent Bitmap : Internal
  13.  
  14. Update Time : Sun Feb 23 18:44:05 2025
  15. State : clean, degraded, recovering
  16. Active Devices : 2
  17. Working Devices : 3
  18. Failed Devices : 0
  19. Spare Devices : 1
  20.  
  21. Layout : left-symmetric
  22. Chunk Size : 512K
  23.  
  24. Consistency Policy : bitmap
  25.  
  26. Rebuild Status : 0% complete
  27.  
  28. Name : localhost.localdomain:1 (local to host localhost.localdomain)
  29. UUID : 1b06a578:dccea7c3:2c92ad48:7f894c6f
  30. Events : 4
  31.  
  32. Number Major Minor RaidDevice State
  33. 0 259 2 0 active sync /dev/nvme2n1
  34. 1 259 1 1 active sync /dev/nvme1n1
  35. 3 259 0 2 spare rebuilding /dev/nvme0n1
 

XFS でフォーマットしてみる.
  1. $ sudo mkfs.xfs /dev/md1
  2. log stripe unit (524288 bytes) is too large (maximum is 256KiB)
  3. log stripe unit adjusted to 32KiB
  4. meta-data=/dev/md1 isize=512 agcount=32, agsize=15259776 blks
  5. = sectsz=512 attr=2, projid32bit=1
  6. = crc=1 finobt=1, sparse=1, rmapbt=0
  7. = reflink=1 bigtime=1 inobtcount=1 nrext64=0
  8. data = bsize=4096 blocks=488312832, imaxpct=5
  9. = sunit=128 swidth=256 blks
  10. naming =version 2 bsize=4096 ascii-ci=0, ftype=1
  11. log =internal log bsize=4096 blocks=238440, version=2
  12. = sectsz=512 sunit=8 blks, lazy-count=1
  13. realtime =none extsz=4096 blocks=0, rtextents=0
 

マウントポイントを作ってマウント.読み書きも確認.
  1. $ sudo mkdir ssd_raid5
  2. $ sudo chmod 775 ssd_raid5/
  3. $ sudo mount /dev/md1 ssd_raid5/
 

/etc/mdadm.conf に設定を書き込み.fstabにも登録しておく.
  1. $ sudo mdadm --examine --scan | sudo tee -a /etc/mdadm.conf
  2. $ sudo vim /etc/fstab
 

RAID5 アレイ自体はご機嫌に作成できたのだが,おっしゃ使うかと HDD からファイルをコピーしていると途中から本体の画面から
  1. [718.401734] md1: writeback error on inode 1611208334, offset 0 sector 1466540928
  2. [718.401748] md1: writeback error on inode 1611208334, offset 0 sector 1466540928
  3. [718.401758] md1: writeback error on inode 1611208334, offset 0 sector 1466540928
 
みたいなメッセージが大量に発生し(上の詳細は適当),しまいに
  1. [718.408539] XFS (md1): log I/O error -5
  2. [718.408544] XFS (md1): Filesystem has been shut down due to log error (0x2).
  3. [718.408546] XFS (md1): Please unmount the filesystem and rectify the problem(s).
 
とファイルシステムからIOエラーが表示されてしまうなど.試しにアレイのdetailを見てみると…
  1. $ sudo mdadm --detail /dev/md1
  2. /dev/md1:
  3. Version : 1.2
  4. Creation Time : Sun Feb 23 19:45:46 2025
  5. Raid Level : raid5
  6. Array Size : 1953260544 (1862.77 GiB 2000.14 GB)
  7. Used Dev Size : 976630272 (931.39 GiB 1000.07 GB)
  8. Raid Devices : 3
  9. Total Devices : 3
  10. Persistence : Superblock is persistent
  11.  
  12. Intent Bitmap : Internal
  13.  
  14. Update Time : Sun Feb 23 20:08:49 2025
  15. State : clean, FAILED
  16. Active Devices : 1
  17. Working Devices : 2
  18. Failed Devices : 1
  19. Spare Devices : 1
  20.  
  21. Layout : left-symmetric
  22. Chunk Size : 512K
  23.  
  24. Consistency Policy : bitmap
  25.  
  26. Name : localhost.localdomain:1 (local to host localhost.localdomain)
  27. UUID : 7396ce6e:09a2ed3a:09c83b4a:295ff556
  28. Events : 315
  29.  
  30. Number Major Minor RaidDevice State
  31. - 0 0 0 removed
  32. 1 259 2 1 active sync /dev/nvme2n1
  33. - 0 0 2 removed
  34.  
  35. 0 259 0 - faulty /dev/nvme0n1
  36. 3 259 1 - spare /dev/nvme1n1
 

/dev/nvme0n1 ご臨終か….Lexir 1TBという詳細のわからないチャイナSSDだし….むしろ LVM で単一ボリュームにしてこれまで使っていたので,過去のファイルに影響及ぼしてなければいいのだけれど….

結局残った 2 枚で RAID1 アレイを組んでお茶を濁しておく.怪しい SSD は破棄して 2TB x 3 とかにするか.

2025年2月23日日曜日

Rocky Linux 9.4のインストールが started cancel waiting for multipath siblings of nvme1n1 と言われてスタックする

タイトル通り.ググっても解決方法が明確で無い.結論から言うと,古い nvidia グラボで GUI を出すのは無理っぽい.VNC で出しましょう.

以下のマシンでは全く問題無くインストールが進み,
・Ryzen 7 7950x, B650 chipset (MSI B650M GAMING PLUS WIFI), 内蔵 Radeon Graphics(2CU)
・Ryzen 9 7945HX (MINISFORUM  BD790i SE), 内蔵 Radeon Graphics(2CU)

以下のマシンで当該問題が出て詰まっていた.
・Ryzen 2990wx, X399 chipset (Asrock X399 Taichi), GeForce GT 710

nvidia のグラボとの相性かしら.Cent OS 7の時は全く問題無かったのだけれど..以下 OS インストールからドライバをなんとかして入れようとして諦めた備忘録.無駄に2日かかったわ,トホホ.

(1) USB メモリのラベルを書き換える.

同じようなことが以下でも書かれていた.
USB メモリの autorun.inf を開き,Rocky Linux のインストール USB のラベルを
Rocky-9-4-x86_64-dvd
から
ROCKY-9-4-X
に書き換える.

(2) nomodset を使う
参考にしたのは以下のサイト.

インストーラー(GRUB)起動時に Tab でオプションに移動,オプションに以下を追加する.

nomodeset 
## noapci nodmraid nvme_core.default_ps_max_latency_us=0 はしなくてもよい

これでGUIではなく CUI でインストーラが立ち上がる.GUI だと(nomodesetつけないと)スタックしてインストール画面にたどり着かない.

(3) CUI / VNC でインストールする.

GUI インストーラで[1]言語が英語で認識されているのだが,そのままでは[3]のインストールソースが認識されない.一度[1]言語設定をしてあげると,[3]のインストールソースを"LABEL=ROCKY-9-4-X"と自動認識する.(この挙動は不安定で何度もブートするハメに…)

ディスクは選べるがパーティションの設定はお任せになってしまうみたい(?).root とユーザーは適当に.
インストーラ起動時に CUI でインストールするか,VNC で遠隔で画面をつなぐか聞かれるが,VNC の方が圧倒的に楽である事に気がついたので最後だけ VNC を使った.

(4) ポートフォワードしてGUIを表示させる.

Linux マシン側で VNC を立ち上げる.

$ sudo dnf install tigervnc-server
$ vncserver

IP アドレスも調べておく
$ ifconfig

Windows 側で ssh ポートフォワードする.
Putty → Connections → SSH → Tunnels
Source Port:5900+VNCのセッション番号
Destination:LinuxマシンのIP
Putty 接続

VNC Cliant を立ち上げ.localhost:5901 で接続.

以下ドライバを入れようと試行錯誤したが結局あきらめてしまった.

・RTX2000 以降(?)は公式ドライバを nvidia のリポジトリから落とせる.今回の対象はGT710 (400番台相当らしい)なので,ドライバを入れても「対応してへんで」「公式サイトからドライバ落としてな」と言われてしまう.

・公式サイトの古いドライバを入れてもハングしてしまう.

・公式サイトの古いドライバにパッチを当てて起動するようなスクリプトを配布されている.

こちらのパッチでもいくつかドライバのバージョンがありバージョンによって挙動が変わるのだが,コンパイルヘッダの場所が新しい Linux Kernel では移動していてコンパイルエラーになったり,CPATH 変えて無理くり入れても結局 nv_acpi のコンパイルができなかったり,バージョンによってはすんなり入っても再起動するとパニック起こしてしまったり,結局 GUI で動かすのは厳しかろうという判断になった.
そもそも 400 番台という古い GPU で動かそうというのがあかんのか,でも GT 7x0 シリーズって画面映ればええねん GPU の定番で現役だと思うのだが….もう少し新しめのアーキテクチャの GPU 買ってくるしかないのかねえ.

nvme の問題なら M.2 の SSD 抜いたらええんか,と思って抜いたらポストすらしなくなってしまってめっちゃ焦った.

2025年2月15日土曜日

LaTeX 擬似コードでのインデントの変更 (Google翻訳しただけ)

デフォルトでは、algorithmic パッケージは 2 em のインデントを設定します。簡単なコマンドを使用して、インデントを減らしたり増やしたりできます。

\begin{document} の前に以下のコマンドを配置するだけです。

\algrenewcommand\algorithmicindent{0.5em} % または任意の値を

これにより、好みに応じてインデントが減らされたり増やされたりします。


2025年2月13日木曜日

Redomi Note 13 Pro+ 5G

今使っている Mi Max さん,フラッシュ LED がつかない(なぜか Zaim のカメラだとつく),電話不能,などなど徐々に不調になってきたので Redomi Note 13 Pro+ 5G に乗り換え.+のつかない Redomi Note 13 Pro 5G で十分だったのだけれど,デザインがかわいいので+にしてしまった.


カメラがでかい & 重い….上側が重たいので重量バランスが悪い….

・カメラの画角
日本のレビューにはカメラの画角が書かれていなかった.英語サイトのFAQによると画角(と 35 mm 換算焦点距離)は以下の通り.
メインカメラ:84.8° (24mm相当)
超広角カメラ:118.2° (13mm相当?)
マクロカメラ:80.5° (26mm相当)

メインカメラは 2x トリミングで 48 mm 相当,4x トリミングで 96 mm 相当,と考えるとなかなか良い画角.マクロはもっと画角狭い方がいいなぁ.

・adb 使って以下のアプリを消す(本当は穏便に Disable したかったけれどできないらしい).十分かどうかは不明.以下のサイトも参考に.
【Xiaomi】MIUIの広告削除、不審アプリ削除方法【Xiaomi adb/fastboot tools】

  1. adb shell pm uninstall --user 0 com.miui.videoplayer
  2. adb shell pm uninstall --user 0 com.xiaomi.mipicks
  3. adb shell pm uninstall --user 0 com.miui.audiomonitor
  4. adb shell pm uninstall --user 0 com.miui.android.fashiongallery
  5. adb shell pm uninstall --user 0 com.miui.settings.rro.device.hide.statusbar.overlay
  6. adb shell pm uninstall --user 0 com.miui.mishare.connectivity
  7. adb shell pm uninstall --user 0 com.xiaomi.mi_connect_service
  8. adb shell pm uninstall --user 0 com.mi.globalbrowser
  9. adb shell pm uninstall --user 0 com.miui.player
  10. adb shell pm uninstall --user 0 com.miui.phrase
  11. adb shell pm uninstall --user 0 com.miui.gallery
  12. adb shell pm uninstall --user 0 com.facebook.services
  13. adb shell pm uninstall --user 0 com.miui.wallpaper.overlay.zirconjp
  14. adb shell pm uninstall --user 0 com.miui.bugreport
  15. adb shell pm uninstall --user 0 com.miui.yellowpage
  16. adb shell pm uninstall --user 0 com.miui.miwallpaper.overlay.zirconjp
  17. adb shell pm uninstall --user 0 com.mi.globallayout
  18. adb shell pm uninstall --user 0 com.miui.cit
  19. adb shell pm uninstall --user 0 com.miui.misound
  20. adb shell pm uninstall --user 0 com.facebook.system
  21. adb shell pm uninstall --user 0 com.miui.wallpaper.overlay.customize
  22. adb shell pm uninstall --user 0 com.google.ar.core
  23. adb shell pm uninstall --user 0 com.miui.mediaeditor
  24. adb shell pm uninstall --user 0 com.google.android.videos
  25. adb shell pm uninstall --user 0 com.google.android.apps.tachyon
  26. adb shell pm uninstall --user 0 com.google.android.youtube
  27. adb shell pm uninstall --user 0 com.google.android.apps.youtube.music
  28. adb shell pm uninstall --user 0 com.xiaomi.glgm
  29. adb shell pm uninstall --user 0 com.mi.globalminusscreen
  30. adb shell pm uninstall --user 0 com.google.android.apps.chromecast.app
  31. adb shell pm uninstall --user 0 com.google.android.apps.subscriptions.red
  32. adb shell pm uninstall --user 0 com.google.android.apps.chromecast.app
  33. adb shell pm uninstall --user 0 com.android.thememanager
  34. adb shell pm uninstall --user 0 com.miui.miservice
  35. adb shell pm uninstall --user 0 com.google.android.apps.messaging
  36. adb shell pm uninstall --user 0 com.android.provides.downloads.ui
  37. adb shell pm uninstall --user 0 com.google.android.apps.wellbeing
  38. adb shell pm uninstall --user 0 com.google.android.inputmethod.latin
 

・[開発者オプション]→[最小幅]を初期値の"406"から"510"あたりに変えると,一画面に描画されるコンテンツが増えるのでよい.昔は adb で DPI を変えていたけれど端末単体でできるのは便利になったねぇ,と思ったら Mi Max 君でもできるんだが(!)

左が 406 (初期設定),右が 510 .
 

・[開発者オプション]→[アクティビティを強制的にサイズ変更可能にする]を選ぶと画面分割に対応していないアプリでも画像分割できるようになるかもしれない.

・サードパーティーランチャーで画面分割が動かない.標準のランチャーが裏で生きているとサードパーティーランチャーでも画面分割できるのだけれど,KILLされてしまうと動かなくなってしまう.ナビゲーションボタンの非表示もできない.超不便.(昔のMIUI だとできたんだが)

・Redomi Note 13 Pro+ 5G はでかいでかいと言われているけれど,個人的には横が小さすぎ(74.2mm)て QWERTY が打ちづらい.


歴代スマホと横幅を比べてみる.左から
Galaxy Note: 83mm
Xperia Z Ultra: 92mm
Mi Max 3: 87.4mm
Redomi Note 13 Pro+ 5G: 74.2mm
Mi Max 3: 87.4mm (没)

Galaxy Note は不満無いので横幅 80mm あたりが使いやすさの分水嶺なのかしら.Mi Max 4 がでたらよかったのにねぇ.

Z Ultra はお天気モニターアプリの常時表示で使っていたのだが,バッテリーがご懐妊していて持ち上げたら背面パネルがポロンと取れた….