0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

デュアルブートPC上でUbuntuをUSBメモリにインストールした

Last updated at Posted at 2019-12-26

はじめに

Qiita初投稿です。大学の生協で買ったクソ遅かった生協PCを使ってUbuntu+Windowsのデュアルブートをしています。
基本は家で使ってますが、大学まで持っていくのが重くてめんどくさい。通勤ラッシュでPCが押しつぶされたらどうしよう。
ということで、Ubuntuの環境を持ち運べるようにUSBメモリにインストールした。

使用したデバイス

  • FUJITSU LIFEBOOK SH90/T /dev/sda

    • Ubuntu 18.04とWindows 10のデュアルブート(UEFIブート)
    • HDDの動作があまりに遅くてイライラしてたのでSSD換装している
  • BuffaloのUSBメモリ:2GB(容量が小さい、isoを書き込む) /dev/sdb

  • ELSONICのUSBメモリ:16GB(容量が大きい、Ubuntuのインストール先) /dev/sdc

isoの書き込み

1年前にやったのでどうやったか忘れた。Unetbootinだったかな?

USBメモリのパーティション

小さい方のUSBメモリ(/dev/sdb)からブートする。
Try Ubuntu without Installingを選択。
大きい方のUSBメモリ(/dev/sdc)を接続し、GPartedでパーティションをいじる。
参考サイト を見たところ、USBメモリの先頭にfat32形式で領域を確保すればWindowsからもアクセスできると知り、同じようにパーティションを編集した(/dev/sdc1)。
あとはUbuntuがインストールされる、ext4のパーティション(/dev/sdc2)を作る。
swap領域は作らなかった。

2020.5.3追記: UEFIブートするためにはEFIパーティション(マウントポイントは /boot/efi )が必要。
Windowsとデータ共有用のパーティションは作らないで進め、/dev/sdc1をEFIパーティションにする方が良さそう。

インストール

デスクトップにある「Ubuntu 18.04のインストール」をダブルクリック。
間違えるとSSDのデータが飛ぶので気をつける(そもそもSSDを外して作業すべきだった説)。
なお/dev/sdc2のような部分は環境によって変わるので、適宜読み替えていただくとよい。

  • 「インストールの種類」: それ以外
  • マウントポイント(/dev/sdc2): /
  • ブートローダをインストールするデバイス: /dev/sdc

IMG_20191224_090143_25per.jpg
IMG_20191224_092058_25per_2.jpg

解像度の関係で画面の下が切れていて、ブートローダをインストールするデバイスのメニューを選べなかったので設定を変更した。

$ xrandr --output eDP-1 --mode 1920x1440

起動できるか試す

  • 大きい方のUSBメモリを外して(SSDから)いつもどおり起動できるか→起動できない(汗)
    • grub rescue的な画面が出現
  • 大きい方のUSBメモリを付けて起動→GRUBにすべてのOSが登録されているのでこっちはいけそう(結局やらなかった)

SSDのブートローダを修復

  • 大きい方のUSBメモリなしで起動しないのはまずい
  • 大きい方のUSBメモリを外して修復。参考サイト(web archive)の通りで大丈夫だった。ひとまず安心。

大きい方のUSBメモリのブートローダを修復

この作業はWindowsのみインストールされている別のPCを使って行った。EFIパーティションを/dev/sdc1とした(共有用のパーティションを後で変更する)。

大きい方のUSBメモリから起動

IMG_20191224_131701_tr_2.jpg
grubのos選択画面からUbuntuを選べるようになってた。

しかし、この後ログイン画面が現れずemergency modeになってしまった。
ググってみたところ /etc/fstab が怪しそう。

# cat /etc/fstab

ブート時に /dev/sda3 (SSDのブートローダ)を読み込む設定になってしまっていた。
[](あと /boot/efi 的なディレクトリが作られているが中身が空だった。)
/dev/sdc1を読み込ませるようにする。

パーティションを再編集

共有用のパーティションを別に作る。番号の並びが変になってしまった。

  • /dev/sdc3: 共有用(fat32)、/windows にマウント
  • /dev/sdc1: ブートローダ(に変更)、/boot/efi にマウント
  • /dev/sdc2: ubuntu、/ にマウント

対応するUUIDを指定してマウントの設定を書く。

/etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdc2 during installation
UUID=hoge  /               ext4    noatime,errors=remount-ro 0       1
# /boot/efi => /dev/sdc1 に変更
UUID=fuga  /boot/efi       vfat    umask=0077      0       1
# /windows => /dev/sdc3 に変更
UUID=piyo  /windows        vfat    noatime,users,rw,utf8,uid=1000,gid=1000,fmask=133,dmask=022 0       1

# swapは使用しない

tmpfs /tmp tmpfs defaults,noatime,size=512m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,size=512m 0 0
tmpfs /var/log tmpfs defaults,noatime,size=512m 0 0

UUID=foo /media/(username)/C auto nofail,noatime,users,rw,uid=1000,gid=1000,fmask=133,dmask=022 0 0
UUID=bar /media/(username)/D auto nofail,noatime,users,rw,uid=1000,gid=1000,fmask=133,dmask=022 0 0

起動できた

SSDなどを自動マウントする場合、/etc/fstab の設定で nofail と書かないとそもそも起動できなかったりする(別PC上で起動するなどマウントできない場合にすぐemergency modeになる)。
WindowsのBitLockerがかかっているとマウントできない(それはそう)。

パーティションテーブルがmsdosだった?

$ sudo parted -l
モデル:   (scsi)
ディスク /dev/sdc: 15.9GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 3    1049kB  3461MB  3460MB  primary  fat32
 1    3671MB  4195MB  524MB   primary  fat32             boot, lba
 2    4195MB  15.8GB  11.6GB  primary  ext4
 4    15.8GB  15.9GB  105MB   primary  fat32

Screenshot from 2019-12-27 08-53-42.png

これでも起動できてる。UEFI-MBRの組み合わせになっている?

USBメモリの寿命を延ばす対策 メモ

効果がどのくらいあるかは不明。

  • /etc/sysctl.conf の vm.dirty_writeback_centisecs の値を大きく
  • mlocateをcron.dailyからcron.weeklyに移動
  • /etc/fstab の設定
    • tmpfs (/tmp, /var/tmp, /var/log)
    • noatime

いろんな設定(1, 2)(3)(4

  1. UbuntuとWindowsで時刻が9時間ずれる問題の解消

$ timedatectl set-local-rtc true
```

  1. ディレクトリ名を英語に

$ LANG=C xdg-user-dirs-gtk-update
```
3. ctrlとcapsの入れ替え

```txt:/etc/default/keyboard

XKBOPTIONS="ctrl:swapcaps"
```

  1. ノートPCでタッチパットが反応しない問題の解決

    /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.notimeout i8042.nomux"
```

Ubuntu 20.04 の場合

2020.5.3追記: 同様にやってみたら案の定失敗したのでブートローダを修復した。インストール時に

以下のデバイスのパーティションテーブルが変更されます:
SCSI1 (0,0,0) (sda)

のように、インストール先のデバイス (/dev/sdc) 以外のものが表示される場合は失敗しそう。
Screenshot from 2020-04-26 06-45-23.png

最後に

fat32のパーティションが最初じゃなくて(ext4をまたいで)最後にあってもWindowsで読み込めるかどうか試したところ、できた(できるようになってた)。
参考にしてたサイトが結構前のものだったので、最新の情報を調べることが大事そう。
Windows 10は起動しただけでメモリを2GB食っているのをやめてほしい(これが嫌で仮想環境とかは使いたくない)。

最後まで読んでくださりありがとうございます。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?