0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

デュアルブートできるLiveUSBを作る

Posted at

はじめに

LinuxのLiveUSBを作成したときに、USBメモリの領域が余るのはもったいないので、余計な物を詰め込んでみました。
以下はその作業を簡単にまとめたものです。

警告
この記事には、使用中のPCのデータを破壊し得る操作が記述されています。
この記事が原因で発生したデータの損失について筆者は補償できません。

目的

  • USBメモリの有効活用
  • Linuxのブートプロセスについて学んだのでおさらい

機能

  • 2種類のLinuxのデュアルブートおよび、ユーザーデータの用途で使用可能
  • Linux Mint + Tiny Core Linuxの組み合わせのみサポート
    組み合わせによっては干渉等によって起動しない可能性がある

用意するもの

  • 作業用PC(Ubuntu 20.04)
  • USBメモリ(8 GiB以上)
  • 平常心

USBメモリの準備

gpartedを使用して、USBメモリを以下の4つの領域に分割する(パーティション)。
パーティションテーブルはgpt(GUID)とする。

  1. ブート領域
  2. Linux Mint
  3. Tiny Core Linux
  4. 余り

ブート領域

先頭の100 MiBはブート用の領域とする。
fat32でフォーマットした後、フラグを編集でboot、espフラグを有効にする。

Linux Mint

LiveCD用のisoファイル+マージンのサイズがあれば良い。執筆時点では3GiB程度。
ext4でフォーマットする。

Tiny Core Linux

100 MiB程度で良い。追加する機能によってはその限りではない。
ext4でフォーマットする。

余り

残った領域は自由にフォーマットして使用して良い。

イメージファイル

LiveCD用のisoファイルの内容をUSBメモリにコピーする。

  • isoファイルおよび、USBメモリをマウントする
  • isoファイルはnautilusから右クリックしてディスクイメージマウンターを起動する
  • USBメモリはgnome-disksを使用するのが良い
  • マウント先はgnome-disksで確認できる。コピーの実行例は以下の通り
cd /media/<ユーザー名>
ls -a ./<ISOファイルのディレクトリ>
# TODO: 必要なファイルと不要なファイルを区別する
sudo cp -r ./<ISOファイルのディレクトリ>/* ./<USBメモリの領域>/ 
sudo cp -r ./<ISOファイルのディレクトリ>/.disk ./<USBメモリの領域>/ 

ブートローダー

USBメモリにブートローダーを書き込む。

  1. Linux MintおよびTiny Core Linux<マウント先>/boot/grub/grub.cfgがあることを確認する
  2. USBメモリのブート領域をマウントする
  3. 以下のコマンドでGRUBをインストールする
  4. <ブート領域>/boot/grub/に以下の内容でgrub.cfgを作成する
    UUIDはgnome-disksまたはgpartedで確認できる。
GRUBインストール方法
sudo grub-install --target=x86_64-efi --efi-directory=/media/<ユーザー名>/<ブート領域> --boot-directory=/media/<ユーザー名>/<ブート領域>/boot --removable
grub.cfg
insmod all_video

if loadfont unicode ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=ja_JP
  insmod gettext
fi
terminal_output gfxterm
    
set color_normal=white/black
set color_highlight=black/light-gray

set timeout_style=menu
set timeout=30

insmod search_fs_uuid
insmod part_gpt
insmod ext2
	
menuentry "Linux Mint" {
	search --no-floppy --set=root --fs-uuid <Linux Mint領域のUUID>
	configfile /boot/grub/grub.cfg	
}

menuentry "Tiny Core Linux" {
	search --no-floppy --set=root --fs-uuid <Tiny Core Linux領域のUUID>
	configfile /boot/grub/grub.cfg	
}

動作確認

作業用PCがUSBメモリからブート可能な設定となっているならば、この段階で再起動すればLiveUSBから起動できる。
あるいは、USBメモリをアンマウントして他のPCから起動しても良い。

おまけ

Linuxのブートについての豆知識を用語集っぽくまとめました。

用語 説明
ファームウェア 基板上のチップに焼き込まれたプログラム。電源投入すると最初に起動する
BIOS PCに搭載されたファームウェア
UEFI Intelが策定したBIOSに関する規格。この世には二種類のBIOSがある。UEFIに対応したものと、旧時代の遺物だ。
ブートローダー ファームウェアとOSのつなぎとなるプログラム。ブートローダーが使用される理由は様々である。実は、条件さえ整えばUEFIからLinuxを直接起動できる
GRUB Linux向けに広く使われるブートローダー。Ubuntuをインストールすると付いてくる
isolinux LiveCDに入っているブートローダー。今回は無視した
Linux・カーネル いわゆるOSの中核をなすプログラム。PCが起動している間常駐して、様々な雑事を引き受ける。
vmlinuz Linuxの実行ファイルを圧縮したもの
initrd・initramfs・初期RAMディスク Linux起動時に読み込まれているファイルシステム。ルートファイルシステムをマウントするまでのつなぎとして使われることが多い。LiveCDでは魔改造されている
PCの起動 PCが起動したと言えるタイミングは何時か?これは深い問いである。ブートローダーがLinuxを起動したとき、Linuxがsystemdを起動したとき、ログイン画面が表示されたとき(sshdやディスプレイマネージャー等)、考え方によって様々
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?