4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Let's Note CF-SZ6 に Debian GNU/Linux をインストール・環境設定

Last updated at Posted at 2018-07-30

本稿は、Let's Note CF-SZ6 に Debian GNU/Linux Stretch をインストールした時の備忘録です。

Debian GNU/Linux のインストール

https://www.disk-partition.com/jp/articles/shrink-volume-beyond-half-its-size.html などの記述にしたがい、以下の手順で Windows10 がインストールされている領域を縮小。

  1. システムの保護を無効に設定し、復元ポイントを全て削除
  2. 仮想メモリページングファイル(C:\Pagefile.sys)を削除1
  3. デフラグを実行
  4. ディスクの管理ツールで、ボリュームの縮小を実行
  5. 仮想メモリページングファイルとシステムの保護の設定を元に戻す

Windows10 の領域を約 60GB まで縮小して、Debian をインストールする領域を用意した。

Device          Start        End    Sectors   Size Type
/dev/sda1        2048     534527     532480   260M EFI System
/dev/sda2      534528     567295      32768    16M Microsoft reserved
/dev/sda3      567296  125223588  124656293  59.5G Microsoft basic data
/dev/sda4   125224960  126896127    1671168   816M Windows recovery environment
/dev/sda5  1968951296 2000408575   31457280    15G unknown
/dev/sda6   126896128  127395839     499712   244M Linux filesystem
/dev/sda7   127395840 1937747967 1810352128 863.2G Linux filesystem
/dev/sda8  1937747968 1968951295   31203328  14.9G Linux swap

後は、PANASONIC のロゴが表示されている間に F2 キーを叩いて、BIOS メニューに入り、USB から起動すればインストーラが走る2。普通にインストーラを実行していけば、UEFI が自動検出されて、以下のように自動的にマルチブートな設定でインストールされる。MBR よりも楽だなあと初めて思った。

# efibootmgr 
BootCurrent: 0007
Timeout: 2 seconds
BootOrder: 0007,0000,0001,0004,0002,0003
Boot0000* Windows Boot Manager
Boot0001* Recovery Partition
Boot0002* UEFI: PXE IP4 Intel(R) Ethernet Connection (4) I219-LM
Boot0003* UEFI: PXE IP6 Intel(R) Ethernet Connection (4) I219-LM
Boot0004* Windows Recovery Environment
Boot0007* debian

同じ状態のはずの CF-SX3 を、Recovery Partition から起動して Windows7 専用機に復元しようとしたが、失敗した。リカバリデータが格納されている /dev/sda5 は変更していなかったはずなのだが。/dev/sda6〜8 を削除してから復元を試みる必要があった可能性がある。次回は注意すること。

各種設定

ネットワーク

無線LAN

Intel のドライバは non-free で配布されているので、最初に non-free のパッケージを sources.list に追加.

/etc/apt/sources.list
deb http://ftp.jp.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ stretch main contrib non-free

deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free

# stretch-updates, previously known as 'volatile'
deb http://ftp.jp.debian.org/debian/ stretch-updates main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ stretch-updates main contrib non-free

その上で、firmware-iwlwifi をインストール。

# apt update
# apt install firmware-iwlwifi

初回時のみ、iwlwifi を再ロードして初期化する(またはシステム全体を再起動する)。

# modprobe -r iwlwifi
# modprobe iwlwifi
firmware: failed to load iwlwifi-8265-26.ucode (-2)
Direct firmware load for iwlwifi-8265-26.ucode failed with error -2
firmware: failed to load iwlwifi-8265-25.ucode (-2)
Direct firmware load for iwlwifi-8265-25.ucode failed with error -2
firmware: failed to load iwlwifi-8265-24.ucode (-2)
Direct firmware load for iwlwifi-8265-24.ucode failed with error -2
firmware: failed to load iwlwifi-8265-23.ucode (-2)
Direct firmware load for iwlwifi-8265-23.ucode failed with error -2
firmware: direct-loading firmware iwlwifi-8265-22.ucode
loaded firmware version 22.361476.0 op_mode iwlmvm

上記のように failed というメッセージがかなり出てくるので少し心配になるが、最終的に iwlwifi-8265-22.ucode を読み込むことができていて、動作には支障ないようだ。

なお、CF-SV8 に搭載されている Cannon Point-LP CNVi という無線 LAN アダプタの場合は、Debian 10 (buster) で用意されている firmware-iwlwifi パッケージでは動かない。backports.debian.org のリポジトリを有効化して、buster-backports の firmware-iwlwifi パッケージをインストールする必要がある。

# apt -t buster-backports install firmware-iwlwifi

外部からの通信を全て拒否する

サーバ目的として使うマシンではないので、外部からの全てのパケットは拒否するよう設定しておく。iptables-persistent をインストール。

# apt install iptables-persistent

以下のような設定ファイル /etc/iptables/rules.v4 および /etc/iptables/rules.v6 を用意。なお、v197 以後の systemd は NIC に対して、eth0 などの旧来の名前の代わりに、enp2s0 などの名前を割り当てるため、iptables で指定するインタフェース名も従来とは変化しているので、少々注意が必要。

/etc/iptables/rules.v4
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i enp+ -m state --state INVALID,NEW -j DROP
-A INPUT -i wlp+ -m state --state INVALID,NEW -j DROP
-A FORWARD -i enp+ -m state --state INVALID,NEW -j DROP
-A FORWARD -i wlp+ -m state --state INVALID,NEW -j DROP
COMMIT

設定ファイルを読み込ませる。

# service netfilter-persistent reload

Bluetooth

buleman をインストールして、適当にペアリング。

# apt install blueman

VPN over SSH

従来は vpnc を使っていたが設定が面倒だったので、sshuttle に変更した。まず、sshuttle パッケージをインストール。

# apt install sshuttle

以下のようにコマンドを実行しておくと、指定されたサブネットの範囲については sshuttle を経由して接続するようになる。

$ sshuttle -D -r ユーザ名@サーバ名 AAA.BBB.CCC.DDD/XXX

先に iptables の設定をせずに sshuttle を使おうとすると、

ssh connection to server (pid 14783) exited with returncode 255

という謎のエラーで接続に失敗することがある。デバッグメッセージを出力させても、まったく手がかりが得られずに苦労したのだが、あきらめて先に iptables の設定をしたら接続できるようになった。

省電力設定

ディスプレイを閉じた時にサスペンドするように変更

「アプリケーション」→「設定」→「電源管理」で設定できる。

バッテリー充電管理

バッテリーの過充電を避けるために,tlp をインストールしておく.

# apt install tlp
# systemctl enable tlp
# systemctl start tlp

CPU の周波数スケーリング

バッテリ稼働時間を延ばすには、負荷状況に応じて CPU の周波数を変更する設定が重要。従来は cpufreq デーモンのインストールなどが必要だったが、Linux 3.4 以後はカーネルモジュールで自動的に行われるようだ。

# apt install linux-cpupower
# cpupower frequency-info

として、CPU の周波数制御が powersave モードで行われるようになっている点を確認しておく。

デスクトップ設定

CapsLock キーを Control キーとして動作するようにする

以下を記述して,CapsLock を完全に Control キーとして動作するようにする.

/etc/default/keyboard
XKBMODEL="pc105"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps"

タッチパッドでタップした時に、クリックと同じ働きをするようにする

xserver-xorg-input-synaptics をインストールする。

# apt install xserver-xorg-input-synaptics

その上で、synclient コマンドを起動する度に呼び出すように設定する。各種の流儀があるが、XFCE を利用している場合は、以下のように XFCE 用の xinitrc を書き換えておくのが楽だろう。

~/.config/xfce4/xinitrc
#!/bin/sh

if [ -z "${DISPLAY}" ]; then
    prog=xinit
else
    prog=/bin/sh
fi

# Enable tap actions on a touchpad.
if ( grep -q synaptics /var/log/Xorg.0.log ); then
    if [ -x /usr/bin/synclient ]; then
        /usr/bin/synclient TapButton1=1 LBCornerButton=2 RBCornerButton=3 MaxTapTime=140 \
                           SingleTapTimeout=140 MaxDoubleTapTime=140 VertEdgeScroll=1
    fi
fi

exec ${prog} /etc/xdg/xfce4/xinitrc $*

ビープ音が鳴らないようにする

日本語入力

emacs-mozc mozc-fcitx をインストール。

Let's Note 本体のキーボードは日本語配列なので、Happy Hacking Keyboard などの英語配列の USB 外付けキーボード使う場合などは、キー配列を切り替えて使う必要が生じる。fcitx-imlist コマンドを使うと、簡単に切り替えられるようになる。

;; インストール済みのキーボード配列を調べる
$ fcitx-imlist -l
fcitx-keyboard-us (キーボード - 英語 (US)) [enabled]
fcitx-keyboard-jp (キーボード - 日本語) [enabled]
mozc (Mozc) [enabled]
;; 英語配列を優先する
$ fcitx-imlist -s us
;; 日本語配列を優先する
$ fcitx-imlist -s jp

その他

etckeeper

# apt install etckeeper

git-lfs

nextcloud-client

リポジトリを追加.

/etc/apt/sources.d/nextcloud-client.list
deb http://ppa.launchpad.net/nextcloud-devs/client/ubuntu zesty main

リポジトリ署名の公開鍵を追加,nextcloud-client をインストール.

# apt-key adv --recv-key --keyserver keyserver.ubuntu.com AD3DD469
# apt update
# apt install nextcloud-client

[2022/06/13追記] Debian bullseyeでは、本家パッケージリポジトリにnextcloud-desktopが入ったので、上記設定は不要。単に以下のようにすれば良い。

# apt install nextcloud-desktop

他のマシンと同一のパッケージ構成にする

元のマシンで以下のコマンドを実行すると、インストール済みパッケージ一覧が得られるので、このパッケージ一覧を使って、新しいマシンに一気に同じパッケージをインストールすれば良い。

$ dpkg --get-selections

しかし、元のマシンと、新しいマシンとで Debian のバージョンが異なっていたりすると、単にパッケージ一覧を使っても「そんなパッケージは存在しないよ」というエラーでインストールできない。

そのような場合は、not_depeneded_packages.pl を使って、他のパッケージによって依存されていないパッケージの一覧を作成し、その一覧に含まれるパッケージのインストールを試みると楽。

時刻合わせ

[2022/06/13追記] Debian bullseyeでは、従来の ntpd の代わりに systemd-timesyncd が利用できる。

まず、ハードウェアCMOSクロックの設定を確認するために timedatectl コマンドを実行する。

# timedatectl status
               Local time: 月 2022-06-13 22:12:48 JST
           Universal time: 月 2022-06-13 13:12:48 UTC
                 RTC time: 月 2022-06-13 22:12:48
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
              NTP service: n/a
          RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone.
         This mode cannot be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.

警告にしたがって、ハードウェアCMOSクロックにはUTCを設定するように設定を変更する。

# timedatectl set-local-rtc 0
# timedatectl status
               Local time: 月 2022-06-13 22:13:23 JST
           Universal time: 月 2022-06-13 13:13:23 UTC
                 RTC time: 月 2022-06-13 13:13:23
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
              NTP service: n/a
          RTC in local TZ: no

次に systemd-timesyncd をインストールする。

# apt install systemd-timesyncd

/etc/systemd/timesyncd.confNTP= の行を編集して ntp.nict.jp を参照するように設定しておく.

diff --git a/systemd/timesyncd.conf b/systemd/timesyncd.conf
index e74c0f6..a8b93d9 100644
--- a/systemd/timesyncd.conf
+++ b/systemd/timesyncd.conf
@@ -12,7 +12,7 @@
 # See timesyncd.conf(5) for details.
 
 [Time]
-#NTP=
+NTP=ntp.nict.jp
 #FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
 #RootDistanceMaxSec=5
 #PollIntervalMinSec=32

systemd-timesyncd を再起動後に、以下のような結果が得られれば、正常に動作(時刻同期)している。

# systemctl restart systemd-timesyncd
# timedatectl status
               Local time: 月 2022-06-13 22:39:05 JST
           Universal time: 月 2022-06-13 13:39:05 UTC
                 RTC time: 月 2022-06-13 22:39:05
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
# timedatectl timesync-status 
       Server: 2001:df0:232:eea0::fff4 (ntp.nict.jp)
Poll interval: 8min 32s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 1
    Reference: NICT
    Precision: 1us (-20)
Root distance: 0 (max: 5s)
       Offset: +62.526ms
        Delay: 17.242ms
       Jitter: 35.790ms
 Packet count: 7
    Frequency: -48.092ppm

TODO

  • 残設定
  • 暗号化ボリューム
    • 最初に、空の領域全体を暗号化ボリュームに設定する。
    • 次に、論理ボリューム(LVM)の設定を行う。先に作成した暗号化ボリューム全体を、ボリュームグループに登録する。そのボリュームグループから、/ 用の論理ボリュームと、スワップ用の論理ボリュームを切り出す。
    • このように設定すると、起動時の暗号化パスフレーズの入力が1回で済むようになる。
    • 「ディスク全体を使って暗号化ボリュームの設定を行う」を選べば、同じような手順になるのだが、そうするとWindowsの回復領域などが破壊されてしまうので、手作業で設定する必要がある。
  • secure boot
    • CF-SV8 では UEFI の secure boot が有効になっているので,所有者の個人鍵(Machine Owner Key; MOK)を登録して,MOK を使って kernel module に署名してやる必要がある(署名しないと、kernel module が load できず、例えば virtualbox の利用時に問題になる)。手順は、 https://stegard.net/2016/10/virtualbox-secure-boot-ubuntu-fail/ を参照。
    • CF-SR4では、なぜか secure boot に失敗し、BIOS 設定で secure boot を無効化する必要があった。https://gihyo.jp/admin/serial/01/ubuntu-recipe/0444 で解説されている通り、shim ブートローダが挟まっているのだが。
  1. スタートメニュー→Windowsシステムツール→コントロールパネルと辿って、コントロールパネルを開く。次に、コントロールパネルから、システムとセキュリティ→システムと辿って、システムの詳細設定をクリックして、システムのプロパティを開く。次に、詳細設定タブ→パフォーマンスの設定→詳細設定タブ→仮想メモリの変更と辿って、「すべてのドライブのページングファイルを自動的に管理する」チェックボックスを外し、「ページングファイルなし」チェックボックスにチェックして、設定ボタンをクリックする。

  2. 高速起動が有効になっていると、F2 キーを叩いても無視されるらしい。Windows10 であれば、Windows キーを押しながら x を押してメニューを出し、電源オプションを選択。そこで高速起動を無効化すると、F2 キーが使えるようになる。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?