サブ機兼家庭用NAS(ネットワークストレージ)用途で購入したCHUWIのCeleron N4100搭載ミニPCには、もともとWindows 10 Homeがインストールされていた。非力で、Windows 10ですら動作が重いこのPCをWindows 11に更新する気はなく、軽量なLinuxに入れ替えて使うことにした。その覚え書きである。
本能レベルの忌避感、心と身体が拒絶するWindows 11
私のミニPCに搭載されているCeleron N4100は、格安ノートPCなどに広く採用されている低性能CPUだ。安価なノートPC向けの省電力CPUで、性能はWindows 10が動作する最低限レベルにとどまる。
正直なところ、軽い作業ならなんとか使えはするものの、Windows 10でもすでに動作は重い。PC自体はWindows 11へのアップデートに対応しているが、11にすればさらに動作が重くなるのは目に見えているため、アップデートする気はまったく起きない。
そもそもWindows 11は、もはやOSなのか、マイクロソフトのクラウドOSを操作するための端末用ソフトなのかよく分からない。スタンドアローンでは完結しない、得体の知れない“OSもどき”の別物になってしまっている印象があり、自分から進んで使いたいとは思えない。
そうした事情から、これまで仮想環境で使っていたLinuxを実機にも導入することにした。
今後は、マイクロソフトのWindows 11とはできるだけ距離を置く方針とする予定だ。できる限りは。
軽量ディストリビューション、何を選ぶ?
軽量と思われがちなLinuxだが、導入するディストリビューションの種類によっては大容量メモリを要求されるし、CPUパワーが不足していると動作も非常に重くなる。
特に知名度の高いUbuntuなどは、デスクトップ環境にGNOMEベース(Unity系統)の重量級ディストリビューションであり、非力なマシンに入れればまず後悔するだろう。
個人的には、Linuxの画面表示の仕組み(GUIの基盤)はX11(X Window System)、デスクトップ環境はXfceが軽量で扱いやすいと感じている。そのため、選択肢は実質的にMint XfceかDebian Xfceの二択になる。
なお、仮にPCの性能が高くても、個人的にはWaylandは使わない。
Mint XfceとDebian Xfceは性能的にはほぼ同等(Debianの方がわずかに軽い程度)だが、インストールや初期設定の手軽さではMint Xfceに分があるため、今回はMint Xfce 22.3を選択した。
危険は承知の上、セキュリティはWindows 2000並のガバガバ希望
Linuxは、OSがファイルやフォルダに権限や所有者を設定し、ユーザーに完全な操作権を委ねない場面が多い。
Windows 2000時代のように、ユーザーが自由にあらゆる場所を触れた環境を好む人間としては、それが堅苦しく感じられ、ストレスの原因になる。そこで実機に導入するにあたり、こうしたOS側の管理をできるだけ排除した。
ただし、その分セキュリティは大きく低下する。ルーターを介さずネットワークに接続する環境でこれを行うのは、ほぼ自殺行為と言っていい。
したがって、ここに記す初期設定の覚え書きをそのまま参考にした結果、ウイルス感染やOS破損などの問題が発生したとしても、当方は一切の責任を負わず、サポートも行わない点をあらかじめ了承してほしい。
不適切な環境でこのガバガバなセキュリティ設定を再現すれば、冗談抜きで高確率でPCは壊滅的な状態になる。
Linux入れたらセキュリティをガバガバにするためにやること
rootのパスワードを作る
Mintはrootでのログインを前提としない方針のディストリビューションだが、それでは不便なのでターミナルから設定する。
sudo passwd root
これで su を使えば、ターミナル内では自由にroot権限を取得できる。
rootでログインできるようにする
必要になるかは不明だが、Mintではログイン画面に選択肢がないため、ログアウト後にrootでログインできるよう、ユーザー切り替えを有効にするために lightdm.conf を書き換える。
[Seat:*]
# 自動ログイン用
autologin-user=一般ユーザー名
autologin-user-timeout=0
# ユーザー変更
allow-guest=false
greeter-show-manual-login=true
右クリックで「root開く」がでるようにする
Mintでは初期状態で右クリックメニューに「rootで開く」が存在しないため、表示されるようにディフォルトのThunarのカスタムアクション設定ファイルを削除する。
該当ファイル: ~/.config/Thunar/uca.xml
rm ~/.config/Thunar/uca.xml
完全に初期化したい場合はこちら。
rm -r ~/.config/Thunar
その後、Thunarを再起動。
thunar -q
サスペンド完全停止
サスペンド(スリープ機能)を完全に無効化する。常時起動が前提のNAS(ネットワークストレージ)では勝手にサスペンドされると困るため、すべてオフにする。
※ネット越しに外部からは接続せず、家庭内LANのみで使う簡易的な家庭用NASとして運用する。
① systemd側を無効化(root)
mkdir -p /etc/systemd/logind.conf.d
cat > /etc/systemd/logind.conf.d/disable-sleep.conf <<'EOF'
[Login]
HandleSuspendKey=ignore
HandleHibernateKey=ignore
HandleLidSwitch=ignore
HandleLidSwitchDocked=ignore
IdleAction=ignore
EOF
systemctl restart systemd-logind
② systemdターゲットをマスク(root)
systemctl mask sleep.target
systemctl mask suspend.target
systemctl mask hibernate.target
systemctl mask hybrid-sleep.target
③XFCEの電源管理を無効化(通常ユーザー)
※ rootで実行しない
xfconf-query -c xfce4-power-manager --create -t int -p /xfce4-power-manager/lid-action-on-battery -s 0
xfconf-query -c xfce4-power-manager --create -t int -p /xfce4-power-manager/lid-action-on-ac -s 0
xfconf-query -c xfce4-power-manager --create -t bool -p /xfce4-power-manager/lock-screen-suspend-hibernate -s false
④ DPMS(画面省電力)を無効化(通常ユーザー)
※ これをやらないと「フリーズしたように見える」
xset -dpms
xset s off
xset s noblank
確認:
xset q | grep DPMS
→ DPMS is Disabled ならOK。
⑤ DPMSを永続化
echo "xset -dpms" >> ~/.profile
echo "xset s off" >> ~/.profile
echo "xset s noblank" >> ~/.profile
⑥ 画面ロック無効(必要に応じて)
xfconf-query -c xfce4-session -p /general/LockCommand -s ""
確認(root):
systemctl status suspend.target
→ masked なら systemd側封印成功
これで止まるもの
- サスペンド
- 蓋閉じ停止
- 放置サスペンド
- 画面ブラックアウト(DPMS)
- 画面ロック
電源管理パッケージの削除
まずインストール状況を確認:
dpkg -l | grep xfce4-power-manager
完全削除(root):
apt purge xfce4-power-manager light-locker
apt autoremove
削除後の状態
- XFCEの電源設定メニュー消える
- サスペンドGUIトリガー消える
- systemdは既にmask済みなので実行不能
これで 電源管理層そのものが存在しない状態 になる。
Samba インストールと設定(ガバガバ仕様)
まずインストール:
sudo apt update
sudo apt install samba
設定ファイル編集:
sudo nano /etc/samba/smb.conf
末尾に追加:
[global]
map to guest = Bad User
guest account = nobody
[root]
path = /
browseable = yes
read only = no
guest ok = yes
force user = root
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777
再起動:
sudo systemctl restart smbd
この設定により、ユーザー認証が通らなかった場合でも自動的にゲスト扱いとなり、パスワードなしでアクセスが通るようになる。
つまり、実質的に「誰でも入れる」状態になる。(これで昔のOS並のクレイジーなガバガバ共有設定になる。)
パーミッション制御を無効化(umask)
Linuxはデフォルトで作成されるファイルやフォルダにアクセス制限(パーミッション)を付けるため、そのままだとSamba経由で書き込みできなかったり、扱いづらくなる。
それを防ぐために、作成時の制限をほぼ無効化する。それには .bashrc を変更する。
nano ~/.bashrc
末尾に追加:
umask 000
そして反映させる。
source ~/.bashrc
これで、新規作成されるファイルやフォルダがすべてフルアクセス(777相当)となり、Samba経由でも制限なく扱えるようになる。
結果、別PCから自由にアクセス・書き換えが可能な“ノーガードNAS”が完成する。
Windows側から \\Linux側のip で接続すればフルコントロール可能。
Sambaの停止、再開
※注意
セキュリティ的に脆弱なので、この設定でSambaを動かしたままインターネットに接続するのは危険。
基本はローカル環境専用。ネット接続するなら直前にSambaを停止すること。
一時停止
sudo systemctl stop smbd
再開
sudo systemctl start smbd
状態確認
systemctl status smbd
自動起動(再起動後も有効にする)
毎回手動で起動するのは面倒なので、PC起動時にSambaが自動で立ち上がるように設定する。
sudo systemctl enable smbd
これで、再起動後や電源オン時にも自動的にSambaが起動し、何も操作しなくても共有が使える状態になる。
ディスク自動マウント(これが一番重要)
NASとして使う場合、電源投入だけで使える状態にするためにディスクの自動マウント設定を行う。
まずUUIDを確認する。
blkid
対象ディスクのUUID(xxxx-xxxx の部分)を確認して控える。
次に /etc/fstab を編集する。
sudo nano /etc/fstab
以下を追記:
UUID=xxxx-xxxx /mnt/nas ext4 defaults 0 2
※ xxxx-xxxx は先ほど確認したUUIDに置き換える
マウント先ディレクトリが存在しない場合は先に作成しておく。
sudo mkdir -p /mnt/nas
外部ネット接続を防ぐ
この構成はセキュリティを意図的に無効化しているため、外部ネットワークに接続すると極めて危険。
ポートが開いた状態で外部に晒されると、不正アクセスやマルウェア感染のリスクが一気に跳ね上がり、最悪の場合は短時間でシステムが侵害される可能性がある。
そのため、安全のためにローカル通信のみ許可し、外部ネットに出ないよう制御する。
無効化
nmcli connection modify "Wired connection 1" ipv4.never-default yes
nmcli connection up "Wired connection 1"
有効化
nmcli connection modify "Wired connection 1" ipv4.never-default no
nmcli connection up "Wired connection 1"
※ 接続名(例では Wired connection 1 の部分)は nmcli connection show で確認
Linux → Windows共有は鬼門
LinuxからWindows(10以降)の共有へ接続するのは非常に困難。
特にパスワード未設定の場合、Windows側がゲスト接続を拒否する仕様のため、ほぼ接続不可になる。
Windowsの共有にパスワードを設定すれば問題は解決するが、本記事のように「認証なし・完全フルアクセス前提」のガバガバ運用では、そもそもパスワードという概念自体を排除したい。
さらに、仮想PC内の古いOSとも同一条件で共有したいため、環境を統一する目的もあり、最終的な回避策としてWindows側でSMBv1を有効化して対応する。
SMBゲストアクセス許可(Windows側)
ここから先では、通常は非推奨とされるSMBv1をWindows 10で有効化する。さらに、regedit.exe を使ってレジストリを直接変更するため、操作には十分な注意が必要になる。
設定を一つでも誤るとOSが正常に動作しなくなる可能性があるほか、セキュリティ的にも大きな問題を抱えることになる。特にSMBv1は脆弱性が多く、過去には WannaCry のようなワームによって大規模な被害が発生している。
この構成を再現すると、ネットワーク経由で侵入されるリスクが大幅に上がるため、安易に実行するべきではない。実際に行う場合は、完全に自己責任で対応すること。
ゲストアクセスを有効にする
キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
値の名前: AllowInsecureGuestAuth
種類: DWORD
値: 1
説明: SMBv2/3 でパスワードなしゲストアクセスを許可
パスワード保護共有を無効化
キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
値の名前: restrictnullsessaccess
種類: DWORD
値: 0
説明: パスワードなしアクセスを許可
Null セッションアクセスの設定
キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
値の名前: NullSessionShares
種類: REG_MULTI_SZ
値: 共有名を列挙(例: "Public")
説明: パスワードなしでアクセス可能な共有を指定
注意点
SMBv1 を使う場合は別途 SMBv1 機能の有効化が必要
コントロールパネルの「Windows の機能の有効化または無効化」(またはファイル名を指定して実行から optionalfeatures.exe )→「SMB 1.0/CIFS ファイル共有のサポート」→「SMB 1.0/CIFS クライアント」と「SMB 1.0/CIFS サーバー」にチェック入れる。
ただし、Windows 10 のアップデートでゲストアクセス関連設定が初期化される可能性あり。
重要:セキュリティに関する注意
繰り返しになるが、絶対に忘れないでほしいのは、SMBv1はセキュリティ的に非常に脆弱だということ。
この状態で外部ネットワークに接続すると、脆弱性を突かれて侵入されるリスクが極めて高くなる。
過去には WannaCry のようなワームがSMBの脆弱性を利用して爆発的に感染を広げた事例もある。
そのため、この構成は家庭内LANなどの閉じたネットワークでのみ運用することが前提となる。
ルーターを介さずに外部ネットへ直接接続した場合、短時間で侵入される可能性があり、最悪の場合はシステム全体が破壊される。
冗談ではなく、「繋いだら終わる」レベルの危険性があるので、この点だけは必ず理解しておくこと。
それでもGUIマウントは厳しいのでTerminalで smbclient を使う
ここまで設定しても、Linux側からWindows共有をGUIで扱うのはほぼ不可能。
特にThunar(ファイルマネージャー)で smb//Windowsのip のように入力しても、認証やプロトコルの問題で接続を拒否されることが多く、実用的ではない。
この構成(ゲスト・パスワードなし・SMBv1)では、GUIマウントは諦めて、Terminalから直接アクセスするのが現実的な解決策になる。
そのため、smbclient を使う。
smbclient //192.168.x.x/example -N -m NT1 -d 3
コマンドの意味
//192.168.x.x/example
→ 接続先の共有(IPアドレス+共有名)-N
→ パスワードなし(No password)で接続-m NT1
→ SMBv1(NT1)を強制指定(これを付けないと接続できない場合が多い)-d 3
→ デバッグレベル(接続失敗時の原因確認用。通常はなくてもOK)
接続すると、共有フォルダの中身を一覧表示できる。
ファイルを取得する場合は、get ファイル名 コマンドでLinux側にコピーできる。
GUIでの快適な操作はできないが、最低限「見る・取る」ことは可能なので、この用途であればTerminalでの運用が現実的な落としどころになる。
まとめ:Linux移行について
低スペックPCにLinuxを入れると快適になるという話は、半分正しく、半分は誤解だ。
「Windowsのサポート終了=Linuxにすれば、これまでと同じ感覚で使い続けられる」といった情報も見かけるが、実際には操作体系やソフトウェアの互換性が大きく異なるため、そのまま置き換えられるものではない。
LinuxはWindowsとは別物であり、Windows用ソフトは基本的に動かない前提で考えるべきだ。
ただし、特性を理解して使えば、無料でありながら非常に有用なOSでもある。
なお、いきなり実機に導入するのはおすすめしない。仮想環境で操作に慣れてからでないと、ターミナル操作も多く、何も分からず詰む可能性が高い。
