ウェブサイト検索

ThinkPad X1 Carbon Gen 7に暗号化されたファイルシステムとUEFIでARCH Linuxをインストールする


この記事では、ThinkPad X1 Carbon Gen 7 ラップトップに Arch Linux をインストールします。このチュートリアルには、インストール手順、基本設定、および Arch Linux を開始するためのポストインストール調整が含まれています。

ほとんどの指示はArch Linuxのインストールに関する一般的なものなので、簡単な修正を加えれば、このチュートリアルはどのUEFIシステムのインストールにも使えます。ただし、いくつかのポイントはThinkPad X1 Carbon Gen 7に特有のため、ThinkPad X1 Carbon Gen 7以外のPCやノートパソコンにArch Linuxをインストールする場合は基本的なLinux管理スキルが必要です。

ご注意
このガイドは、出発点に過ぎません。パフォーマンスを向上させるための追加のヒントやコツをお持ちの方は、下のコメント欄をご利用ください。それらをこのガイドに組み込むことができます。
ありがとうございます。

このチュートリアルを完了すると、次のものが得られます:

  • GNOMEデスクトップをインストールしたArch Linux
  • luks暗号化を使用して暗号化された/ディレクトリ
  • systemd-bootを使用して構成されたLinuxブートローダー
  • スワップとルートディレクトリをホストするために、論理ボリュームとパーティションを作成しました。
  • あなたの/bootディレクトリのためにEFIパーティションが構成されました
  • 基本システムの構成とファインチューニング
  • GNOMEデスクトップからWiFiに接続するためにワイヤレスを使用する能力
  • 動作しているBluetoothおよびThunderboltコントローラー
  • ThinkPad X1 Carbon Gen 7のファームウェアをアップグレードする能力を向上させる

ThinkPad X1 Carbon Gen 7 ラップトップにおけるARCH Linux

ソフトウェアの要件と使用される規約

ThinkPad X1 Carbon Gen 7にARCH Linuxをインストールする手順

  1. 混乱を避けるために、以下のBIOS設定が仮定されており、または推奨されています:

    BIOSのセキュアブートが無効になっています

    カーネルDMA保護が無効になっています。これは、Thunderbolt BIOSアシストモードを無効にするために必要です。

    サンダーボルト BIOS アシストモード は無効です。これはサンダーボルトコントローラーのファームウェアアップグレードに必要です。

    このチュートリアルで同じ認識を持つために、ブート方法を UEFI のみ に設定してください。

    オプションI/Oポートアクセス設定

    スリープ状態がLinuxに設定されました

  2. 次のステップは、ブータブルのArch Linux USBを作成することです。公式のArch ISOをダウンロードし、任意のUSBフラッシュドライブを接続して、次のコマンドを実行します。ここで、/dev/sdXはUSBフラッシュドライブのブロックデバイス名です:

    ddrescue archlinux-XXXX.XX.XX-x86_64.iso /dev/sdX --force -D
    
  3. Arch LinuxのUSBフラッシュドライブを作成したら、ThinkPad X1 Carbonに接続し、ノートパソコンの電源を入れ、F12を押します。ブートメニューが表示されます。そこから、UEFI CDの最初のオプションを選択してください。
  4. すべてが順調に進めば、今はArch Linuxのコマンドプロンプトが表示され、rootユーザーとしてログインしているはずです。最初に必要なのは、インターネットへのアクセスを得ることです。コマンドを入力してください:

    wifi-menu
    

    ワイヤレスネットワークのSSIDと適切なドライバーを入力することでウィザードに従ってください。これには数秒かかる場合がありますが、成功したらpingコマンドを実行してインターネットにアクセスできることを確認してください:

    ping -c 1 8.8.8.8
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_seq=1 ttl=52 time=9.81 ms
    
    --- 8.8.8.8 ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 9.810/9.810/9.810/0.000 ms
    
  5. 私たちは、新しいArch Linuxシステムのために基本パッケージをダウンロードしてインストールするためにインターネット接続を使用します。

  6. 次に、ハードドライブをパーティション分割します。2つのパーティションを作成します。最初のパーティションはEFIとして使用され、最終的には/bootとしてマウントされます。2つ目のパーティションは/およびswapパーティションのために論理ボリュームを作成するために使用されます。次のcfdiskコマンドを実行するか、あなたがよく知っている他のパーティションツールを使用してください:

    警告
    以下のコマンドを実行すると、実質的にハードドライブ上のすべてのファイルシステムとデータが消去され、元に戻す手段がなくなります。自分がしていることを確信してください。

    cfdisk -z /dev/nvme0n1
    

    SSDドライブのパーティションを分割しています。これにより、すべてのパーティションとデータが削除されます。自分が何をしているのかを確認してください。

    GPTラベルタイプを選択してください。

    このスクリーンショットに示されているように、両方のパーティションを作成してください。また、適切なファイルシステムタイプも選択してください。EFIパーティションのサイズは300MBから500MBの範囲である必要があります。このインストールは約69MBのディスクスペースを消費するので、動かす余裕があることを確認してください。準備が整ったら、変更を保存して終了してください。

    次に、EFIパーティションをフォーマットするステップです。

    mkfs.vfat -F32 -n EFI /dev/nvme0n1p1
    

    さらに、私たちは第二のパーティションを作成し、暗号化し、フォーマットする必要があります:

    cryptsetup --use-random luksFormat /dev/nvme0n1p2
    

    次に、デバイスをluksとしてマッピングします。このマッピングされたデバイス名を使用して、次のステップで論理ボリュームを作成します:

    cryptsetup luksOpen /dev/nvme0n1p2 luks
    

    パーティションをフォーマットして暗号化する

  7. 今、私たちはルートファイルシステムとスワップパーティションのための論理パーティションを作成する準備が整いました。以下のコマンドはその作業を行います。swapパーティションのサイズを必要に応じて変更してください:

    pvcreate /dev/mapper/luks
    vgcreate vol_grp /dev/mapper/luks
    lvcreate --size 8G vol_grp --name swap
    lvcreate -l +100%FREE vol_grp --name root
    

    任意で、すべての論理ボリュームを表示するためにlvdisplayコマンドを使用してください。

    LVMを使用した論理ボリュームの作成

    最後に、このステップでは新しいrootとswapパーティションをフォーマットします:

    mkfs.ext4 -L root /dev/mapper/vol_grp-root
    mkswap /dev/mapper/vol_grp-swap
    

    新しいパーティションをフォーマットする

  8. 基本システムパッケージのインストールの準備がほぼ整いました。しかし、まず必要なパーティションすべて、スワップパーティションを含めてマウントしましょう:

    mount /dev/mapper/vol_grp-root /mnt 
    swapon /dev/mapper/vol_grp-swap 
    mkdir /mnt/boot
    mount /dev/nvme0n1p1 /mnt/boot
    

    chrootの準備をするために、すべてのシステムパーティションをマウントしてください。

  9. さて、私たちは新しいシステムの基本パッケージをインストールする準備が整いました。KDEデスクトップであろうと、他のディスプレイマネージャーであろうと、すべては後でインストールできます。以下のコマンドは推奨パッケージをインストールします。追加または削除したいものがある場合は、新しいシステムに再起動した後に行うことをお勧めします。今はシンプルに保ちましょう!以下のコマンドを実行する前に、オプションで/etc/pacman.d/mirrorlistファイルを編集し、好みのミラーをリストの一番上に配置して、より速いダウンロードを行うことをお勧めします。

    再起動後にインターネット接続ができなくなるのを避けましょう!
    以下のパッケージリストにより、systemdネットワークマネージャを使用してGNOME GUI経由でWiFiに接続できます。ThinkPad X1 Carbon Gen 7には有線ネットワークカードがないため、以下のパッケージリストに変更を加える際は、再起動後に接続できることを確認してください。

    pacstrap /mnt gnome gnome-extra xorg base base-devel linux linux-firmware lvm2 dhcpcd efibootmgr intel-ucode xf86-video-intel vi dhclient
    
  10. 今こそ新しい /etc/fstab を生成する時です:

    genfstab -U /mnt >> /mnt/etc/fstab
    

    結果として得られる/etc/fstabは、以下に示すものに似ているはずです。

    新しいArch Linuxインストールのために生成された/etc/fstab

  11. システムのインストールが完了したら、arch-chroot コマンドを使用して新しいシステムに入ります。

    arch-chroot /mnt
    

    いくつかの設定を行います。まず、Waylandを無効にします。WaylandはXorgの単純な代替として意図されていますが、現時点ではそれからかなり遠いかもしれません。Waylandを使用したい場合は、このポイントをスキップするか、新しいシステムに再起動した後に設定を元に戻してください。/etc/gdm/custom.confを開き、WaylandEnable=falseの行のコメントを外します:

    Waylandを無効にする

    次に、タイムゾーンを変更し、システム時刻をハードウェアクロックに設定します。下記のコマンドを自分のタイムゾーンに合わせて変更する方法が不明な場合は、/usr/share/zoneinfo/をリストしてください:

    ln -s /usr/share/zoneinfo/Australia/Sydney /etc/localtime
    hwclock --systohc --utc
    

    システムの新しいホスト名を設定します。例えば、x1-carbonに設定しましょう:

    hostnamectl set-hostname x1-carbon
    echo x1-carbon > /etc/hostname
    

    次に、ロケールを生成します。/etc/locale.genにアクセスして、あなたのロケールに適した行をコメント解除します。例えば、オーストラリアの場合、en_AU.UTF-8 UTF-8 の行をコメント解除します。準備ができたら、ロケールを生成して設定します:

    locale-gen
    echo LANG=en_AU.UTF-8 > /etc/locale.conf
    export LANG=en_AU.UTF-8
    

    新しいルートパスワードを設定します:

    passwd 
    New password: 
    Retype new password: 
    passwd: password updated successfully
    

    新しいユーザーを作成します。以下のコマンドは、新しいユーザー(例:lubos)を作成し、このユーザーの新しいパスワードを設定します:

    groupadd lubos
    useradd -m -g lubos -G wheel,storage,power,network,uucp lubos
    set password:
    passwd lubos
    

    最も重要なステップの1つは、最初のramdisk環境を作成することです。/etc/mkinitcpio.confを編集して、生成されるファイルに以下の内容が含まれるようにしてください。HOOKSの順序を以下のように保つことを確認してください:

    MODULES=(ext4)
    BINARIES=()
    FILES=()
    HOOKS=(base udev autodetect modconf block encrypt lvm2 resume filesystems keyboard fsck)
    

    「/etc/mkinitcpio.conf」の内容に満足したら、次のコマンドを実行してください:

    mkinitcpio -p linux
    

    初期RAMディスク環境設定

    最初のramdisk環境を作成します。次に、/bootパーティションにsystem-bootをインストールします。

     
    bootctl --path=/boot install
    

    システムブートのインストール

    ブートローダー設定を行います:

    echo default archlinux >> /boot/loader/loader.conf
    echo timeout 4 >> /boot/loader/loader.conf
    

    もう少しです。blkidコマンドを使用して、/dev/nvme0n1p2のUUIDを取得してください。

    パーティションUUIDを取得します。

    /boot/loader/entries/archlinux.confというファイルを作成し、次の内容を入力します。その際、blkidコマンドを使用して事前に取得したYOUR-UUID-HEREを置き換えます:

    title Arch Linux
    linux /vmlinuz-linux
    initrd /intel-ucode.img
    initrd /initramfs-linux.img
    options cryptdevice=UUID="YOUR-UUID-HERE":vol_grp root=/dev/mapper/vol_grp-root resume=/dev/mapper/vol_grp-swap rw intel_pstate=no_hwp
    

    完全な archlinux.conf ブートローダーファイルの例

    最終ステップとして、再起動後に以下の二つのサービスを開始するように設定してください:

    systemctl enable gdm
    systemctl enable NetworkManager
    
  12. すべてが再起動の準備が整いました。chrootシステムを終了し、ルートパーティションのマウントを解除して再起動してください:

    exit
    umount -R /mnt
    reboot
    

    Arch Linux GNOMEデスクトップ

  13. throttledパッケージをインストールして有効にします。throttledは、LinuxにおけるIntelのスロットリング問題に対するワークアラウンドです。

    pacman -S throttled
    systemctl enable --now lenovo_fix.service
    
  14. Bluetoothサポートを設定します:

    pacman -S gnome-control-center gnome-bluetooth
    systemctl enable --now bluetooth
    

    Bluetoothサポートを有効にしました

  15. ユーザーのメモ、観察、およびトラブルシューティング

    Lenovo ThinkPad X1 Carbon Gen 7のさらなる設定やチューニングに関するマイクロフォンおよびその他の詳細な情報は、公式のArch Linuxウィキページで確認できます。

    ファームウェアのアップグレード

    LenovoがLinuxベンダーファームウェアサービスに参加して以来、一部のLenovoハードウェアのファームウェアをLinuxのコマンドラインから直接アップグレードできるようになりました。そのためにはまずfwupdパッケージをインストールしてください:

    pacman -S fwupd
    

    ファームウェアをアップグレードするには、次のコマンドを実行してください:

    警告
    ファームウェアのアップグレードには常に予期しないリスクが伴うことに注意してください! 不明な場合は、進めない方が良いです!

    fwupdmgr refresh
    fwupdmgr get-updates
    fwupdmgr update
    

    ThinkPad X1 Carbon Gen 7のThunderboltコントローラーをfwupdmgrを使用してアップグレードする例:

    fwupdmgr get-updates
    20QDCTO1WW
    │
    └─ThinkPad X1 Yoga 4th / Carbon 7th Thunderbolt Controller:
      │   Device ID:           f388b1939351229f5cd3016ff13b2df354e9d38e
      │   Summary:             Unmatched performance for high-speed I/O
      │   Current version:     41.00
      │   Vendor:              Lenovo (TBT:0x0109)
      │   Flags:               internal|updatable|require-ac|supported|registered
      │   GUID:                c7920601-0cda-507f-851e-92129eb1d470
      │ 
      └─ThinkPad X1 Carbon 7th / X1 Yoga 4th Thunderbolt Controller:
            New version:       43.00
            Remote ID:         lvfs
            Summary:           Lenovo ThinkPad X1 Carbon 7th / X1 Yoga 4th Thunderbolt Firmware
            License:           proprietary
            Size:              262.1 kB
            Vendor:            Lenovo Ltd.
            Flags:             is-upgrade
            Description:       Lenovo ThinkPad X1 Carbon 7th / X1 Yoga 4th Thunderbolt Firmware
            
             • Before update, set the Thunderbolt BIOS Assist Mode to "Disable" in BIOS setup under Config > Thunderbolt 3.
             • DO NOT FORCE UPDATE Thunderbolt Controller. This may damage the firmware.
    

    上記の出力から、Thunderboltコントローラーのファームウェアがバージョン41から43にアップグレード可能であることがわかります。Thunderboltコントローラーはアップデート後に再起動/切断されるため、このポートに何か接続されている場合は、切り離しておくことをお勧めします。

    実際のサンダーボルトファームウェアのアップグレードを実行するには、次のコマンドを実行してください:

    fwupdmgr update
    Downloading 43.00 for ThinkPad X1 Yoga 4th / Carbon 7th Thunderbolt Controller...
    Fetching firmware https://fwupd.org/downloads/c656c45c56fe417ac38dab5a57f451c8340292e7-Lenovo-ThinkPad-X1Carbon5th-Thunderbolt-Firmware-N1MTF28W-Secured.cab
    Downloading…             [***************************************] Less than one minute remaining…
    Decompressing…           [***************************************]
    Authenticating…          [***************************************]
    Updating ThinkPad X1 Yoga 4th / Carbon 7th Thunderbolt Controller…
    Restarting device…       [***************************************]
    

    アップグレードが正常に実行されたことを確認するには、次のコマンドを実行します:

    fwupdmgr get-updates
    No upgrades for ThinkPad X1 Yoga 4th / Carbon 7th Thunderbolt Controller, current is 43.00: 43.00=same
    ________________________________________________
    
    Devices that have been updated successfully:
    
     • ThinkPad X1 Yoga 4th / Carbon 7th Thunderbolt Controller (41.00 → 43.00)
    
    Uploading firmware reports helps hardware vendors to quickly identify failing and successful updates on real devices.
    Upload report now? (Requires internet connection) [Y|n]:
    

    サンダーボルトコントローラー

    サンダーボルトコントローラーは、Arch Linuxのインストール後にすぐに動作するはずです。

    アーチLinux上のThinkPad X1 Carbon Gen 7に接続されたLenovo Thunderbolt 3ドック

    ただし、いくつかの注意点があります。例えば、突然動かなくなり、次のエラーメッセージを超えることができませんでした:

    "No Thunderbolt support - Thunderbolt security level could not be determined"
    

    私はLenovoのサンダーボルト3ドックと組み合わせてサンダーボルト3を使用しています。数週間は動いていましたが、突然システムに認識されなくなりました。さまざまな設定、ソフトウェアのアップグレードを含むトラブルシューティングを試みた結果、私のThinkPad X1 CarbonのHDMIポートがまったく機能していないことに気付きました。

    これは単なる偶然ではあり得ず、私はLenovoの緊急リセットに頼りました。(下のビデオを参照)Lenovo ThinkPad X1 Carbon Gen 7 ラップトップのリセット方法です。それ以降、サンダーボルトとHDMIは期待通りに再び動作するようになりました。

    レノボ ThinkPad X1 Carbon Gen 7 の緊急リセット

関連記事: