2020年に発売されたXPS13(9300)を購入した。2015年に買ったXPS13(9343)の最新版。
20%引きになるのを見計らって注文した。税込174,222円。Core i7、メモリ16GB、SSD512GB、FHD+、USキーボード、MS Officeなし。元々画面が広かったのが更に広くなった。
これにArchLinuxをインストールし、諸々の設定をしたメモ。
かなり長くなるので4記事に分ける。
この続きはPart2

この記事でやること

  • ArchLinuxのインストール用メディアを作成
  • 出荷時の状態で、BIOSを最新にしておく
  • パーティションを切り、全パーティションをフォーマット
  • Windows10をインストール

ArchLinuxのインストール用メディアを作成

Ubuntuでやった。

Arch Linux JP Project - ダウンロードを見てISOを落とす。それをddでUSBメモリに入れる。

sudo dd bs=4M if=/home/sankaku/Downloads/archlinux-2020.07.01-x86_64.iso of=/dev/sdd

XPS13(9343)のときは適応する無線LANのドライバがなかったのでISOの作成時に手を加えないといかなかったが、今回は不要。

(推奨) Windows10のインストールメディアを作成する

自分はやらなかったが、Windows10が動いている段階でインストールメディアを作成することを 強く おすすめする。Dell OS Recovery Toolというのを使えばいいと思う。 ここ参照。
Windows10を消したあとでLinuxでインストールメディアを作成しようとすると案外面倒だった。(後半参照。)

BIOS更新

別にこのタイミングでしなくてもいいし、そもそもBIOSを更新しなくても問題はないと思うが、いちおうやっておく。

Dell BIOSアップデート | Dell 日本の動画の通り。

  1. Windows10起動
  2. ブラウザで dell.com/support へアクセス
  3. サービスタグを入れる
    サービスタグはマシンの底面に書いてある("ST")。起動時のロゴマークでF12を押してもわかる(その後の画面の右上にSERVICE TAGが書いてある)。
  4. BIOSをダウンロード
  5. ダウンロードしたファイルを実行
  6. 完了後に再起動
    アプリケーションウィンドウの中にRestartと書かれたボタンがあるので、そこを押して再起動しなければいけない。はじめ(ウィンドウが小さくて)このボタンが目につかず、Windowsのスタートメニューから再起動したが、それだとアップデートされなかった。

パーティション切りとフォーマット

以下の作業は注意してやること。

準備

ここに書いてある推奨事項も以下の手順に含めた。

  1. ArchLinuxを焼いたUSBメモリを挿して起動
  2. 起動時のロゴマークでF12を押し、ブート設定画面へ
  3. BIOS Setupを選択
  4. System ConfigurationでSATA OperationをRAID OnからAHCIへ
  5. Secure BootをOFFにする
  6. POST BehaviorのSign of LifeにあるEarly Logo Display, Early Keyboard BacklightをどちらもOFFに
  7. Boot OptionsでUSBメモリを最上位にする
  8. APPLY CHANGESを押す
  9. EXITを押す
  10. ArchLinuxが起動する

パーティションを切る

上の続き。インストール用メディアで起動したArchLinuxでやる。

  1. fdisk -llsblk で、どのデバイスがSSDなのか把握する
    今回は /dev/nvme0n1 だった。
  2. cgdisk /dev/nvme0n1 を実行
    これで対話的に操作できる。
  3. すべてのパーティションをDelete
    この状態でfree spaceだけが残る。
  4. Newでパーティションを作成
    以下の順番で作成した。前のパーティションとの隙間はあけていない。
    1. システムパーティション
      • サイズ: 512MB
      • パーティションタイプ: ef00(EFI System)
    2. Microsoft予約パーティション(MSR)
      • 128MB
      • 0c01(Microsoft reserved)
    3. Windowsパーティション
      • 128GB
      • 0700(Microsoft basic data)
    4. Windows回復用パーティション
      • 3GB
        これは明らかに多い。1GBでも十分なはず。しかしWindowsアップデートのときにこのパーティションが足りなくなるとWindowsが勝手にパーティションを作ってしまい、その場合Linuxが起動しなくなってしまうということがたびたびあった。それが嫌なので多めに取った。(ただしこれでその問題から逃れられるかはわからない。)
      • 2700(Windows RE)
    5. ArchLinux用
      • 残りすべて(345.3GB)
      • 8300(Linux filesystem)
  5. Writeを押して保存
    確認してから実行すること。

フォーマット

/dev/nvme0n1p1 とかのところは自分の環境での場合に合わせる。

  1. システムパーティションをFAT32に

    mkfs.vfat -F32 /dev/nvme0n1p1
    
  2. WindowsパーティションをNTFSに
    -Q オプションをつけると早いらしいが、今回はつけずにやった。

    mkfs.ntfs /dev/nvme0n1p3
    
  3. Windows回復用パーティションをNTFSに

    mkfs.ntfs /dev/nvme0n1p4
    
  4. ArchLinux用パーティションをext4に -> やっぱりbtrfsに
    はじめext4でやっていた。

    mkfs.ext4 /dev/nvme0n1p5
    

    が、FedoraがデフォルトファイルシステムをBtrfsにするというニュースを見て、試してみることにした。 -f オプションをつけてext4を上書き。

    mkfs.btrfs -f /dev/nvme0n1p5
    
  5. poweroff で電源OFF

Windows再インストール

  1. WoeUSBでWindowsを焼いたUSBメモリを挿す
    作成手順は下。
  2. 起動、DELLロゴでF12を押して起動ドライブをUSBメモリにする
  3. そのままインストール

WoeUSBを使ってWindows10 インストール用USBメモリを作成

Ubuntu 16.04で作成した。

WoeUSBはLinux環境でWindowsのインストールメディアを作るときに使うものらしい。Ubuntuの場合はWebUpd8 : Alin AndreiのPPAからインストールする。

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt install -y woeusb

あとはここからWindows10のISOを落として、WoeUSBで焼けばいい。

作業としてはこれで終了。
しかしこれは最終的な手順で、ここまでめちゃくちゃ詰まった。考えてみるとWindowsのインストールメディアをLinuxで作成するのは初めてだった。
以下、試行錯誤をいろいろ書く。


Windows10のISOはMicrosoftのサイトからダウンロードできる。これをUSBメモリにddすれば終わりだろう…と思っていたが違った!
ddしたUSBメモリでブートしたところ、Windowsインストールの画面にはなる。しかし途中で

お使いのPCに必要なメディアドライバーがありません。

というメッセージが出てしまい、ここから進めない。USBメモリが壊れているのかと思い、買い換えたりしたがそれでもできない。

ddするだけではダメだと気付くまでにかなりの時間がかかった。Windows10のISOをddするのではなく、ISOをマウントして、USBメモリに中身を普通にcpすればいいらしい。
が、パーティションテーブルのタイプで悩んだ。MBRとGPTがあり、USBメモリをどちらで初期化すべきなのかよくわからず。ファームウェアがUEFIなのでGPTなのか?と思ってgdiskを使ったり。
次にフォーマットで悩んだ。FAT32なのかNTFSなのか、あるいは他のものなのか。Windows10のファイルの中には4GBを超えるものがあり、FAT32では無理だ。しかしNTFSだとファームウェアがブートしてくれない…?(最近のBIOSではその心配はないようだが。)
この問題を解決するには、問題の巨大ファイルを分割するとか、あるいはFAT32とNTFSのパーティションを両方作り前者をブート用にするとか、いろいろあるようだった。面倒すぎるし、ここまでで相当時間を使っていたのでWoeUSBを使った。

WoeUSBで焼いたUSBメモリの構成は以下のようになった。(自分用メモ)

$ sudo parted -l

# 略

モデル: ELECOM MF-HTU3B (scsi)
ディスク /dev/sde: 31.0GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    4194kB  31.0GB  31.0GB  primary  ntfs
 2    31.0GB  31.0GB  524kB   primary                    lba

参考

Windows10ブートUSBメモリ