LoginSignup
1
0

More than 1 year has passed since last update.

Surface Go に Ubuntu DDE を Btrfs でインストール

Posted at

はじめに

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 タブで起動時の読み込み順序を以下の順にします。

  1. USB Storage
  2. Internal Storage
  3. 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

参考

1
0
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
1
0