古いPCを再利用するUSBメモリLinuxの作成;Xtra-PCパチモン | ニコラシカは食いしん坊

ニコラシカは食いしん坊

徒然なるままに、日々食べる。

おウチごはんがメインテーマ。
食べたいものは作りたい、
外食したらマネしたい(厄介な客)、
ハーブは育てて生で用意したい。

※随時改訂中

最近のマイトレンド MX-Linux。
それを、
コレ(Xtra-PC)に触発されて自作する為の、備忘録。
 

この USB メモリさえ刺せば、
借り物だろうと家中の PC だろうと
同一環境のMX-Linux を使える。
64bit 機ならば UEFI(例:VALUESTAR VS370/SSB)
は非セキュアブートで,
BIOS(例:ThinkPad SL500) どちらでも起動する。
 

i386 や pae なカーネルを選べば
❝理論的には❞32bit機でも実行可能。
(未検証;実機を持たないため)
但し Google Chrome は 64bit 必須のため不能かと。

 

いくつかの制約がある。

  1. USBの制約により、読み書きの速度はポート,メモリで低速な方に寄る。
    なるべく高速なポートに刺し、同一規格のメモリを使用する。
  2. コンピュータ名はUSBメモリに記録しているため、
    どのPCで起動しても同一名となる。
  3. ビデオカードの専用ドライバを入れないので汎用、
    ネイティブの描画速度には劣る。
    全ての PC が同一構成ならば、いらぬ心配だが。。。。
    可搬性を犠牲にして nVidiaドライバ(MXツール内) を入れるのもアリ。

Live USB って手法もあるらしいけれど、
persistence って仕掛けがイマイチ理解できないので却下、
(全システムのメモリ展開,アップデート,個人ファイルの保存方法,etc.)
今回はわかりやすい仕組みで USB メモリを外付 SSD に見立てる。
 

きっと Windows でも同様に出来るだろうけれど、

PC を替えた時の問題が大きいので
安易には実行できないし、ヒトには勧められない。

  • ライセンス
  • アクティベート
  • ドライバを(自動とはいえ)インストールして再起動

【手順】
※ USB-a=/dev/sda, USB-b=/dev/sdb として進める。
  HDD/SSDが1台以上存在する場合、
 デバイス名を調査して適宜読み替える。
※『3.システム設定』 以前は root で、
 『4.ユーザ設定』は利用するユーザの権限で、
 実行・編集する。

  1. メディアの準備;OS が動いている PC にて
    1. USB-a ※ 4GB以上
      1. MX-Linux(fluxbox) のインストーラを導入。
    2. USB-b ※ USB3.0以上で16GB。8GBでは不足、32GBなら実用性アップ。
      1. GPT形式に変更。
      2. パーティションを3つ作成
        1. /dev/sdb1=bios-grub, 1MB, non-format
        2. /dev/sdb2=esp, 7MB63MB, fat32(ディストロ1つあたり約3MBを消費する模様)
        3. /dev/sdb3=rootMX, 残りすべて, non-format(後にフォーマットされる)
  2. インストール
    1. UEFI な PC に2本とも刺す。
    2. USB-a で起動。
    3. USB-b にインストール。
      1. パーティションと用途
        1. /dev/sdb1:(N.C.)
        2. /dev/sdb2:/boot/efi
        3. /dev/sdb3:/ (root)
        4. grub は eps へインストール(mbr,pbrでは無い)
      2. 途中でコンピュータ名やユーザー名などを登録する。(詳細は省略)
        規定ユーザで自動ログイン(パスワードの入力を省略)する設定もアリ。
    4. USB-a を抜いて USB-b で起動。
    5. アップデート
      1. リポジトリの順序変更 (with Synaptic Package Manager)
        • debian bookworm-updates
        • debian bookworm
        • (disable) deb-src debian bookworm
        • debian bookworm-security
        • (disable) debian bookworm-backports
        • mx bookworm
        • mx bookworm ahs
        • (disable) mx bookworm test
      2. パッケージのアップグレード
        ターミナルで
        apt update
        apt -y full-upgrade && apt -y autoremove
    6. 再起動
  3. システム設定
    1. ntp クライアント
      1. 変更 /etc/chrony/sources.d/mx-datetime.source
        server ntp1.v6.mfeed.ad.jp prefer
        server ntp2.v6.mfeed.ad.jp prefer
        server ntp3.v6.mfeed.ad.jp prefer
        server ntp1.jst.mfeed.ad.jp
        server ntp2.jst.mfeed.ad.jp
        server ntp3.jst.mfeed.ad.jp
      2. hwclock:気にせずともイイ。
        ソコソコ合っていれば、utc / jst は自動判別される模様。 
    • smb:自宅の共有フォルダに接続
      1. マウントポイントを作成
        cd /mnt
        mkdir (fuga-1)
        chmode 777 (fuga-1)
      2. 認証情報を記述
        1. ディレクトリを作成
          cd /etc/samba
          mkdir credentials
          chmod 600 credentials
        2. ファイル (hoge-1) を作成
          ※ 共有フォルダを識別できる名前とする
          username=(hoge-2)
          password=(hoge-3)
      3. /etc/fstab の最後に1行追加
        //(hoge-1)/(hoge-4) /mnt/(fuga-1) cifs credentials=/etc/samba/credentials/(hoge-1),uid=(fuga-2),gid=(fuga-3),ip=(hoge-5),charset=utf8 0 0
      4. 共有フォルダを覗けることを確認
        mount -a
        ls -al /mnt/(fuga-1)
    1. grub(BIOS用)
      1. ターミナルで;root のまま
        grub-install --target=i386-pc /dev/sdb
        BIOS+GPT環境でのGrub2によるブート(BIOS+UEFIの両環境対応型の手順抜粋。一部未確認)より)
    2. カーネル →※1
      1. liquorix
        curl -s 'https://liquorix.net/install-liquorix.sh' | bash ←必要に応じて
        apt -y install linux-headers-liquorix-amd64 linux-image-liquorix-amd64
      2. 32bit 版;必要に応じ、択一
        • apt -y install linux-headers-686:i386 linux-image-686:i386
        • apt -y install linux-headers-686-pae:i386 linux-image-686-pae:i386
    3. ime;依存するパッケージとともに
      (こだわりが無ければ fcitx5 -> fcitx で良い)
      • apt -y install fcitx5-mozc fcitx5-config-qt fcitx5-frontend-qt6 libime-bin im-config mozc-utils-gui fcitx5-frontend-gtk2 fcitx5-frontend-gtk3 fcitx5-frontend-gtk4 fcitx5-frontend-qt5
    4. plank
      1. apt -y install plank
    5. アプリ;MX Package Installer 使用
      1. ブラウザ/Google Chrome
      2. お好きなアプリ( LibreOffice など)
    6. liquorix カーネルで再起動
    7. 後処理;ターミナルは root 
      1. 古いカーネルを削除
        1. apt -y remove linux-headers-amd64 linux-image-amd64
        2. その他、※1でインストールした物を除く。
          1. Synaptic を用いて linux-headers で検索すると見つかる。
          2. 同一バージョンの linux-image が削除されなければ、明示的に削除する。
      2. apt -y autoremove
  4. ユーザ設定
    1. fluxbox
      1. ターミナルを開く。
      2. ~/.fluxbox ディレクトリへ移動
      3. ファイルを編集
        featherpad startup keys overlay init &
        1. startup
          1. 起動系の行は最後に" &"を付ける。
          2. tint2session, DefaultDock.mxdk をコメントアウト
          3. #compton & の行をコメントじゃなくする;透過処理
          4. exec fluxbox の直前に挿入
            xset r rate 200 60
            export QT_IM_MODULE=fcitx
            export GTK_IM_MODULE=fcitx
            export XMODIFIERS=@im=fcitx
            #export DefaultIMModule=fcitx
            fcitx5 &
            mx-tweak --tray &

            plank &
            各行の意味
            1. キーリピートの変更
            2. imeの設定(1)
            3. imeの設定(2)
            4. imeの設定(3)
            5. imeの設定(4;suspend)
            6. ime 起動 (fcitx 使用時はその通りに)
            7. 明るさ調整アイコンを表示
            8. plank 起動
        2. keys
        3. overlay
        4. init
          • session.screen0.toolbar.tools:の行を消して次の通り置き換える。
            session.screen0.toolbar.button.app.label:        MX
            session.screen0.toolbar.button.app.commands:    exec rofi -show drun -theme ~/.config/rofi/themes/appfinder/mxfb-appfinder.rasi
            session.screen0.toolbar.tools:    button.rootmenu, workspacename, iconbar, systemtray, clock
          • 各パラメータを変更。
            session.screen0.toolbar.autoHide:    true
            session.screen0.toolbar.visible:    true
            session.screen0.toolbar.height:    24
            session.screen0.toolbar.widthPercent:   100
            session.screen0.strftimeFormat:    %y/%m/%d(%a)%H:%M
      4. 反映;上記リンク参照
        1. デスクトップを右クリック
        2. MX Fluxbox の最下行(終了)をポイント
        3. 終了の最上行(リフレッシュ)をクリック
    2. tint2
      1. Settings Manager / Tint2 Manager
      2. MX-Comfortable を edit 、他と被らない別名で上書き
      3. ソレだけを有効にして config
        • position:top center
        • size:24[pixels](=height:show)
        • auto hide:enable
        • show panel after:0.3[s]
        • hidden size:1[pixels](=height:hide)
        • panel layer:Top
        • maximized window:full the screen
      4. ボタンは AppFinder のみ残し、他を Dock へ移動
        (詳細は後日)
    3. AppFinder(プログラム一覧;Windows のスタートメニューに相当)
      • 編集(左下の (?) をクリック -> 編集)
        • position:north-west(左上)
        • X-Offset:24[pixels]
    4. conky(追加ファイルをパッケージ化したいなぁ)
      1. 例外作業;root で
        1. 次のファイルを /usr/local/bin へコピー
          • conkymountpoints.sh (from Mabox Linux)
          • detect-init.sh (from antiX Linux)
        2. conkymountpoints.sh を編集
          • memory と swap を、ループの前で他と同様に
      2. ~/.conky ディレクトリに _custom ディレクトリを作成、
        そこへコピーする。
        1. MX-antiX/MX-antiX17
          -> _custom/sysinfo-b
          :uptime, CPU & I/O speed(同高い物)
        2. MX-antiX/MX-antiX17
          -> _custom/sysinfo-a
          :H/W, OS info.(更新頻度の低い物)
        3. mountpoints (from Mabox Linux)
      3. Conky Manager ;各々の表示位置を調整
  5. シャットダウン

USB-b の完成。


【重大改訂履歴】

  • 2024/03/??:カーネル,fcitx5 の導入手順をシェルコマンド化
  • 2024/03/28:~/.xinitrc 追加
  • 2024/04/14:~/.xinitrc の記述を ~/.fluxbox/startup へ移動
  • 2024/04/30:tint2, dock の停止,fluxbox チューニング & 内蔵ツールバーの復活,plank 導入
  • 2024/07/02:espの記述ミス訂正;表記,容量(小さすぎると作成不能)


【予定】

  • conky の詳細設定を追記
  • tint2 のボタン整理 + dock 修正