はじめに
Surface Go (初代) に Deepin デスクトップ環境を採用した Ubuntu DDE 21.04 をデュアルブートでインストールします。
用意したもの
- Microsoft Surface Go ( 8GB RAM, 128GB SSD )
- TypeCover
- USB Type-C HUB
- USB 外付け DVD ドライブ
- Buffalo USB イーサネットアダプター
- 有線 LAN
- Ubuntu DDE 21.04 LiveDVD (インストール用のライブメディア)
- Arch LiveDVD (パーティショニング用のライブメディア)
インストール直後は Wi-Fi が使えないため、インターネットからドライバーをダウンロードするために有線 LAN に繋ぎました。
既に別の Linux が入っていたため、内蔵SSDのパーティションは以下のようになっています。(sudo fdisk -l
で確認できます。)
デバイス | サイズ | タイプ |
---|---|---|
/dev/nvme0n1p3 | 74GB | Microsoft basic data |
/dev/nvme0n1p4 | 12GB | Linux swap |
/dev/nvme0n1p5 | 32GB | Linux filesystem |
/dev/nvme0n1p6 | 257MB | EFI System |
Ubuntu DDE のインストール
デュアルブート領域の作成
Windows のディスクの管理を起動し、Windows が入っているボリュームを縮小して 50GB 程度の空き領域を作ります。
ライブメディアの作成
Ubuntu DDEのWebページ から「 UBUNTUDDE REMIX 21.04 (HIRSUTE HIPPO) OFFICIAL RELEASE 」をダウンロードして、ライブメディアを作成します。
起動順序の変更
音量+ボタンを押しながら電源を入れ、Surface の UEFI 設定を開きます。
Security タブでセキュアブートを無効化し、Boot configuration タブで起動時の読み込み順序を以下の順にします。
- USB Storage
- Internal Storage
- Windows Boot Manager
インストール
ライブメディアを接続し、Exit タブの Restart now から再起動します。ライブ起動した Ubuntu でインストーラーを起動し、内蔵 SSD に Ubuntu をインストールします。この時、インストーラーのパーティション設定画面でマニュアルパーティショニングを選択し、Btrfs でフォーマットした領域を / にマウントするように設定します。
例:
デバイス | フォーマット形式 | マウントポイント | 容量 | フラグ | 役割 |
---|---|---|---|---|---|
/dev/nvme0n1p4 | swap | 12GB | swap | スワップ | |
/dev/nvme0n1p5 | Btrfs | / | 32GB | Linux | |
/dev/nvme0n1p6 | FAT32 | /boot/efi | 256MB | boot | ブートローダー |
インストールが完了したら、Arch のライブメディアを挿入し、起動し直します。
Btrfs サブボリュームの設定
Ubuntu DDE は、デフォルトでは@
、@home
、@swap
のサブボリュームのみ作られるため、以下のディレクトリのサブボリュームを作成してマウントするように設定します。
- /opt
- /root
- /tmp
- /usr/local
- /var
- /.snapshots
Btrfs 領域をマウント
Btrfs でフォーマットされている領域を確認します。
lsblk -f
確認した領域を以下のようにマウントします。nvme0n1p5 の部分は環境によって変わります。
mount /dev/nvme0n1p5 /mnt
サブボリュームの作成
サブボリューム一覧を確認します。
btrfs subvolume list /mnt
新たにサブボリュームを作成します。
btrfs subvolume create /mnt/@opt
btrfs subvolume create /mnt/@root
btrfs subvolume create /mnt/@tmp
btrfs subvolume create /mnt/@usr-local
btrfs subvolume create /mnt/@var
btrfs subvolume create /mnt/@.snapshots
サブボリュームを作成したら、ボリュームをアンマウントします。
umount /mnt
各サブボリュームをマウント
サブボリューム@
を / にマウントします。
mount -o subvol=@,defaults,noatime,space_cache,autodefrag,compress=zstd /dev/nvme0n1p5 /mnt/
既存ディレクトリのバックアップ
既存の /usr/local と /var はサブボリュームに置き換えるため、バックアップしておきます。
mv /mnt/usr/local /mnt/usr/local.backup
mv /mnt/var /mnt/var.backup
マウントポイントの作成
マウントポイント /.snapshots 、/usr/local 、/var を作成します。
mkdir /mnt/.snapshots
mkdir /mnt/usr/local
mkdir /mnt/var
マウント
作成した各サブボリュームをマウントします。
mount -o subvol=@opt,noatime,space_cache,autodefrag,compress=zstd /dev/nvme0n1p5 /mnt/opt
mount -o subvol=@root,noatime,space_cache,autodefrag,compress=zstd /dev/nvme0n1p5 /mnt/root
mount -o subvol=@tmp,noatime,space_cache,autodefrag,compress=zstd /dev/nvme0n1p5 /mnt/tmp
mount -o subvol=@usr-local,noatime,space_cache,autodefrag,compress=zstd /dev/nvme0n1p5 /mnt/usr/local
mount -o subvol=@.snapshots,noatime,space_cache,autodefrag,compress=zstd /dev/nvme0n1p5 /mnt/.snapshots
mount -o subvol=@var /dev/nvme0n1p5 /mnt/var
バックアップから中身をコピーします。
cp -a /mnt/usr/local.backup/* /mnt/usr/local/
cp -a /mnt/var.backup/* /mnt/var
ついでに Windows が入っている C ドライブもマウントします。
mkdir /mnt/mnt/c
mount /dev/nvme0n1p3 /mnt/mnt/c
スワップの設定
デフォルトでは@swap
がスワップとしてマウントされていますが、スワップパーティションをスワップとして設定します。スワップパーティションはsudo fdisk -l | grep swap
で確認できます。
mkswap /dev/nvme0n1p4
swapon /dev/nvme0n1p4
自動マウントの設定
初期状態の fstab をバックアップしておきます。
cp /mnt/etc/fstab /mnt/etc/fstab.backup
起動時に自動マウントさせるために fstab に、現在のマウント情報を追記します。
genfstab -U /mnt >> /mnt/etc/fstab
fstab を編集し、@swap
に関する2行をコメントアウトします。コメントアウトする行はgrep /swap /mnt/etc/fstab
で確認できます。
nano /mnt/etc/fstab
ライブメディアを取り外して再起動すれば、Ubuntu DDEが立ち上がります。
Wi-Fi ドライバーの導入
まずは初期状態のスナップショットをとっておきます。
sudo btrfs subvolume snapshot / /.snapshots/$(date "+%Y-%m-%d-%H-%M")
Wi-Fi ドライバーのディレクトリに移動し、バックアップを取ります。
cd /lib/firmware/ath10k/$(sudo lshw -class network | grep Wireless | grep product | awk '{print $2}')
sudo mv hw3.0 hw3.0.backup
ここを参考に、board.bin と firmware-4.bin をダウンロードし、hw3.0 に配置します。
sudo mkdir hw3.0
cd hw3.0
sudo wget https://github.com/FireWalkerX/ath10k-firmware/blob/7e56cbb94182a2fdab110cf5bfeded8fd1d44d30/QCA6174/hw3.0/board-2.bin -o board.bin
sudo wget https://github.com/FireWalkerX/ath10k-firmware/blob/7e56cbb94182a2fdab110cf5bfeded8fd1d44d30/QCA6174/hw3.0/firmware-4.bin_WLAN.RM.2.0-00180-QCARMSWPZ-1 -o firmware-4.bin
sudo chown root *
sudo chmod +x *
再起動して、 Wi-Fi を認識することを確認したらインストール完了です。
reboot