GPT でのパーティショニングが、よくわからないので、適当にやってみた。
インストーラーでパーティショニング
最初は、Ubuntu 12.04 Desktop 64bit インストーラー(ubuntu-12.04.3-desktop-amd64.iso)を使用したパーティショニングを行ってみた。マザーボードは、GIGABYTE GA-990FXA-UD5 で、BIOSは AMI EFI である。
したがって、UEFI BIOS 向けのパーティショニングとなる。
GPT でのパーティショニングとは関係ないが、諸所の事情で、光学ドライブが付いていないマシンにインストールするために、USB メモリにインストーラーを入れた。
手順は、先人の知恵である「USBメモリを使ってUbuntuをインストール No.2」をありがたく参考に、http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/ から Universal USB Installer をダウンロードして利用した。ありがたや。
インストーラーを起動。
「Install Ubuntu」を選択
「日本語」を選択
「インストール中にアップデートをダウンロードする」および「サードパーティのソフトウェアをインストールする」にチェックを入れ、続ける(この2つは、入れても入れなくてもいいと思う)
「インストールの種類」の選択画面になったら、「それ以外」(説明は、”Ubuntu 向けに、自分でパーティションの作成やサイズ変更を行ったり、複数のパーティションを選択することもできます。”と書いてある)を選択して続ける
パーティション作成画面では、以下の手順でパーティション分けをする。
パーティションは、「EFI システムパーティション」、「ルートパーティション」および、「スワップパーティション」の3つが必須となる。
「/dev/sda」を選択
「新しいパーティションテーブル」ボタンを押下し、「続ける」ボタンを押下
「dev/sda」の「空き領域」を選択して、「追加」ボタンを押下
「新しいパーティションのサイズをメガバイト(1000000 バイト)単位で指定する」に 100(MB)と入力(35MB 以上必要らしい)
「新しいパーティションの場所」:先頭
「利用方法」:EFI システムパーティション
「OK」ボタンを押下
「利用方法」:EFI システムパーティション
「OK」ボタンを押下
同じ要領で、以下の必須パーティションも作成する。
ルートパーティションを作成
「新しいパーティションのサイズをメガバイト(1000000 バイト)単位で指定する」に 10000(MB)利用方法:ext4 ジャーナリングファイルシステム
マウントポイント:/
スワップパーティションを作成
利用方法:スワップ領域必要なパーティションの作成が完了したら、「ブートローダをインストールするデバイス」に「/dev/sda」を選択して、「インストール」ボタンを押下
ここでは、以下のようにパーティションを作った。 sda は、500GB のHDD。ちなみに、空き領域は、勝手にできるようだ。
デバイス タイプ マウントポイント フォーマット サイズ 使用済み
/dev/sda
空き領域 1MB
/dev/sda1 efi 98MB 不明
/dev/sda2 ext4 / する 10000MB 不明
/dev/sda3 ext4 /mnt/temp する 488006MB 不明
/dev/sda4 swap 1999MB 0MB
空き領域 1MB
あとは、最後までインストールして完了。
手動でパーティショニング
KVM 仮想環境上に MBR でインストールした Ubuntu 12.04 Alternate 64bit をそっくり移して、きちんと起動できるか確認した。手動でパーティショニングする場合は、レガシー BIOS 向けなので、EFI BIOS 向けとパーティションの定義方法が異なるので注意。
ゲストイメージのストレージプールは、LVM 上に作成してある。
$ sudo lvsLV VG Attr LSize Origin Snap% Move Log Copy% Convert
yebisu.img vg0 -wi-a- 10.00g
ロジカルボリュームをリネーム
$ sudo lvrename vg0 yebisu.img yebisu.img.bakRenamed "yebisu.img" to "yebisu.img.bak" in volume group "vg0"
新規ロジカルボリュームを作成
$ sudo lvcreate -L 10g -n yebisu.img vg0Logical volume "yebisu.img" created
ゲストボリュームに対するレスキューをするためのツールを起動(libguestfs-tools パッケージ)
$ sudo virt-rescue /dev/vg0/yebisu.img
新規ボリュームをパーティション分け
GPT の場合は、専用のパーティション(vda1)を作成して(本当に必要かどうか、いまいちわからない)、bios_grub フラグを立てる必要がある。
I have no name!@(none):/# parted /dev/vda
(parted) mktable gpt
(parted) mkpart non-fs 0cyl 2cyl
(parted) mkpart root 2cyl 8g
(parted) mkpart swap 8g -1
(parted) set 1 bios_grub on
(parted) print free
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 16.8MB 15.7MB non-fs bios_grub
2 16.8MB 8000MB 7983MB ext4 root
3 8000MB 10.7GB 2737MB linux-swap(v1) swap
10.7GB 10.7GB 1032kB Free Space
(parted) quit
パーティションをフォーマット
I have no name!@(none):/# mkfs.ext4 /dev/vda2
I have no name!@(none):/# mkswap /dev/vda3
I have no name!@(none):/# exit
ゲストボリュームににアクセスできるツールを起動(guestfish パッケージ)
ゲストのファイルシステムに対して、色々できる。
レスキューツールと似ていて、こちらでもパティショニングできるが、いまいち使いづらい。専用コマンドのマニュアルと睨めっこすれば、パティショニングから、フォーマットまでできる。
$ sudo guestfish -a /dev/vg0/yebisu.img.bak
> run
> list-filesystems
/dev/vda1: ext4
/dev/vda2: unknown
/dev/vda5: swap
> mount /dev/vda1 /
コピー元ファイルを tar ファイルに出力
> tar-out / bak.tar
> quit
カレントディレクトリに、bak.tar ファイルができているはず。
コピー先に tar ファイルを展開
$ sudo guestfish -a /dev/vg0/yebisu.img>
>
/dev/vda1: unknown
/dev/vda2: ext4
/dev/vda3: swap
>
>
> quit
再びレスキューツールを起動
$ sudo virt-rescue /dev/vg0/yebisu.img
ゲストストレージに chroot
I have no name!@(none):/# mount /dev/vda2 /sysroot/
I have no name!@(none):/# mount -o bind /dev /sysroot/dev
I have no name!@(none):/# mount -o bind /proc /sysroot/proc
I have no name!@(none):/# mount -o bind /sys /sysroot/sys
I have no name!@(none):/# chroot /sysroot bash
UUID を調べる
root@(none):/# blkid /dev/vda2
/dev/vda2: UUID="8919796d-066a-4f12-adce-d2726c4c6ca1" TYPE="ext4"
root@(none):/# blkid /dev/vda3
/dev/vda3: UUID="1438a432-7db7-43af-a492-1c12f3677ed9" TYPE="swap"
上記で調べたルートおよびスワップドライブの UUID を書き換え
root@(none):/# vi /etc/fstab
上記で調べたスワップドライブの UUID を書き換え
root@(none):/# vi /etc/initramfs-tools/conf.d/resume
GRUB をインストール
root@(none):/# grub-install /dev/vda
Installation finished. No error reported.
GRUB 設定を更新
root@(none):/# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.5.0-42-generic
Found initrd image: /boot/initrd.img-3.5.0-42-generic
Found memtest86+ image: /boot/memtest86+.bin
[27740.000422] SGI XFS with ACLs, security attributes, realtime, large block/inode numbers, no debug enabled
[27740.015882] JFS: nTxBlock = 3834, nTxLock = 30672
[27740.056074] NTFS driver 2.1.30 [Flags: R/O MODULE].
[27740.079828] QNX4 filesystem 0.2.3 registered.
[27740.167927] Btrfs loaded
done
initramfs を更新
root@(none):/# update-initramfs -u -k all
update-initramfs: Generating /boot/initrd.img-3.5.0-42-generic
終了
root@(none):/# exit
exit
I have no name!@(none):/# exit
exit
ゲストを起動
$ virsh start --console yebisu
ドメイン yebisu が起動されました
ドメイン yebisu に接続しました
エスケープ文字は ^] です
error: no video mode activated.
Ubuntu 12.04.3 LTS yebisu ttyS0
ログイン
yebisu login: user1
Password: ********
Last login: Tue Oct 29 14:35:36 JST 2013 on ttyS0
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.5.0-42-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Wed Oct 30 07:32:37 JST 2013
System load: 0.34 Processes: 131
Usage of /: 38.1% of 7.32GB Users logged in: 0
Memory usage: 6% IP address for eth0: 192.168.1.105
Swap usage: 0%
Graph this data and manage this system at https://landscape.canonical.com/
user1@yebisu:~$