CentOS5をGPTパーティションで新規インストールする

CentOS 5 の新規インストール時に GPT パーティションを使いたい場合は、 CentOS 6 の様に一筋縄では行かない。今回は

を参考に、下記のような手順で仮想マシン作成作業を行ってみた

  1. ネットワークインストール用の ISO イメージをダウンロードし、仮想マシンに CD イメージとして読み込ませる設定を行う
  2. 起動選択画面で linux resque と入力し、レスキューモードでサーバを起動する
  3. 起動後は言語選択、キーボード設定、ネットワーク設定、レスキューモード用イメージのダウンロード先を指定して進める。既存 OS 選択画面では Skip を選択して進める
  4. レスキューモードのシェルが立ち上がるので、下記のようにコマンドを実行してディスクのパーティションを切る

    parted /dev/sda
    (parted) mklabel gpt
    (parted) mkpart primary ext3 0 200MB
    (parted) mkpart primary linux-swap 200MB 2248MB
    (parted) mkpart primary ext3 2248MB 21.5GB
    (parted) set 1 boot on
    (parted) quit
    mkfs.ext3 /dev/sda1
    mkfs.ext3 /dev/sda3
    mkswap /dev/sda2
    tune2fs -c 0 -i 0 /dev/sda1
    tune2fs -c 0 -i 0 /dev/sda3
    
  5. そのままでは Anaconda のエラーメッセージが出てインストール処理を先に進められないので、 Anaconda を下記の手順で上書きする

    mkdir /mnt/anaconda
    mount -t tmpfs none /mnt/anaconda
    cd /mnt/anaconda
    tar -cpf - -C /mnt/runtime/usr/lib/anaconda . | tar -xpf -
    vi partitions.py # ここで 1082 行目の errors を warnings に書き換えて保存する
    mount -o bind /mnt/anaconda /mnt/runtime/usr/lib/anaconda
    
  6. このまま Anaconda を起動すると /sbin が存在しているというエラーが出て起動できないため、下記の手順で空の /sbin を用意する

    export PATH=$PATH:/sbin.bak
    mv /sbin /sbin.bak
    mkdir /sbin
    
  7. Anaconda の起動準備が完了したので、適切なミラーサイトの URL を使って Anaconda を起動する

    anaconda --dmraid --selinux -T -m "http://ftp.iij.ad.jp/pub/linux/centos/5/os/x86_64/"
    
  8. インストール処理は、ディスクのパーティション設定以外、いつもの通りに進める。パーティション設定の画面では、すでに作成されているパーティションにマウントポイントを割り当てるにとどめ。パーティションの再フォーマットなどは行わない。 GPT では起動できないとの警告が出たら、そのまま OK を押して進める

  9. インストールが終わったら再起動を行うが、その前に、後の GRUB のインストール作業のために、 ISO イメージを CentOS 5 のものから CentOS 6 のものに差し替えておく

  10. 再起動を行う。そのまま再起動ボタンを押しても、 Anaconda が終了するだけで再起動処理が行われないので、 Ctrl+Alt+Delete を入力するなどして再起動する

  11. CentOS 6 のディスクで起動してきたら、レスキューモードを選択して進める。言語選択、キーボード設定を行うが、ネットワーク設定は不要。既存 OS 選択画面では Skip を選択して進める

  12. シェルが立ち上がったら下記の手順で /boot パーティションをマウントし、必要な GRUB のファイルを上書きする

    mkdir /boot
    mount /dev/sda1 /boot
    cp /usr/share/grub/x86_64-redhat/e2fs_stage1_5 /boot/grub/
    cp /usr/share/grub/x86_64-redhat/fat_stage1_5 /boot/grub/
    cp /usr/share/grub/x86_64-redhat/ffs_stage1_5 /boot/grub/
    cp /usr/share/grub/x86_64-redhat/iso9660_stage1_5 /boot/grub/
    cp /usr/share/grub/x86_64-redhat/jfs_stage1_5 /boot/grub/
    cp /usr/share/grub/x86_64-redhat/minix_stage1_5 /boot/grub/
    cp /usr/share/grub/x86_64-redhat/reiserfs_stage1_5 /boot/grub/
    cp /usr/share/grub/x86_64-redhat/stage1 /boot/grub/
    cp /usr/share/grub/x86_64-redhat/stage2 /boot/grub/
    cp /usr/share/grub/x86_64-redhat/ufs2_stage1_5 /boot/grub/
    cp /usr/share/grub/x86_64-redhat/vstafs_stage1_5 /boot/grub/
    cp /usr/share/grub/x86_64-redhat/xfs_stage1_5 /boot/grub/
    umount /boot
    
  13. ファイルを上書きしたら、 MBR へ GRUB をインストールする

    grub
    grub> root (hd0,0)
    grub> setup (hd0)
    grub> quit
    
  14. GRUB のインストールが完了したら、 ISO イメージを取り出し、再起動を行う

以上の手順で、 GPT パーティションが有効な状態で、新規インストールした CentOS 5 が起動できた