Locked History Actions

Scientific Linux 6.4 Install from USB using SYSLINUX

Scientific Linux 6.4 Install from USB using SYSLINUX

  • 注意

  • 以下の方法より、EXTLINUX を使った方が楽なことが後から分かった(そのメモはここ)。このメモは参考として残しておく。

  • さらに、EXTLINUX を使うより、livecd-iso-to-disk コマンドを使った方が楽なことが後から分かった(そのメモはここ)。

  •  

  • Scientific Linux 6.4 (SL6.4) のインストール用 USB メモリを SYSLINUX を用いて Linux 上で作成した。さらに、これを用いてインストールを行った。Linux 上で インストール用 USB メモリを作る場合、 SYSLINUX はインストーラを保存するパーティションのファイルシステムが FAT32 でなければならない(EXTLINUX は ext3 で良い)。ここでは 32 bit 版 (i386) ではなく 64 bit 版 (x86_64) のインストールイメージを用いた。インストールイメージのサイズが 4 GB を越えるため FAT32 ファイルシステムでは保存できない。そのためインストールに用いる USB はパーティションを分ける必要がある (インストール用 USB メモリ作成上の注意の項目を参照)。

  • Scientific Linux は Red Hat Enterprise Linux のクローンなので、同じクローンである CentOS でも同様の手順になるはず。実際、主に CentOS のページ(How to Set Up a USB Key to Install CentOS)を参考にした。他に参考にしたページは下の方参照。最近の Fedora でも同じようにできるんだろうか?

インストール用 iso ファイル

  • 以下の2つインストール用イメージファイル (iso ファイル) を使うので、まずこれらをダウンロード。ファイルの保存場所はどこでも良い。理研からダウンロードすると早い。

iso ファイル

サイズ

本家

理研のミラー

SL-64-x86_64-2013-03-21-Everything-DVD1.iso

4.2 G

download

download

SL-64-x86_64-2013-03-21-Everything-DVD2.iso

1.2 G

download

download

  • ちなみに、以下の iso を用いてもインストール用 USB メモリの作成が可能。こちらの方がファイルが一つなので楽かも?上の iso との違いがいまいち分からない。何でこちらの方が容量が少ないんだろう?パッケージが省略されている?少なくともデスクトップ環境ならこれでインストール可能。

iso ファイル

サイズ

本家

理研のミラー

SL-64-x86_64-2013-03-18-Install-DVD.iso

4.0 G

download

download

  • 以下のメモでは、SL-64-x86_64-2013-03-21-Everything-DVD1.iso と SL-64-x86_64-2013-03-21-Everything-DVD2.iso を用いたインストール用 USB メモリの作成方法を書いているが、SL-64-x86_64-2013-03-18-Install-DVD.iso を用いてもほぼ同じ手順になる。

インストール用 USB メモリ作成上の注意

  • USB メモリのパーティション
    • インストール用 USB メモリを作成する上で、注意しなければいけないことは、iso ファイル (SL-64-x86_64-2013-03-21-Everything-DVD1.iso (4.2 G バイト)) の保存場所である。このイメージファイルはインストール時に使用するため、USB メモリのどこかに保存しておかなければならない。一方で、インストーラがあるパーティションは FAT32 でフォーマットされている必要がある。FAT32 は 4 GB までのファイルしか扱えないため、インストーラのあるパーティションに SL-64-x86_64-2013-03-21-Everything-DVD1.iso (4.2 G バイト) は書き込めない。よって、 USB メモリは、以下のようにインストーラ用のパーティションとイメージファイル用のパーティションに分ける必要がある。

Partition

ファイルシステム

最低のサイズ

1 つ目

FAT32

233 MB 程度

2 つ目

ext3

4.2 + 1.2 = 5.4 GB

  •  

    • このパーティション分けは、イメージファイルが 4 GB を越える場合、常に(Fedora LiveUSB Creator, UNetbootin, syslinux のどの方法を使っても)必要となる。

    •  

  • USB メモリのサイズ
    • syslinux コマンドを用いる場合、5.6 GB 程度の領域が確保できれば (上記参照)、 インストール用 USB メモリを作成できる。よって 8 GB の USB メモリがあれば十分である。Fedora LiveUSB CreatorUNetbootin を用いてインストールする場合は、インストールメディアの 2 倍のサイズが必要となる(boot 用 iso (SL-64-x86_64-2013-03-18-boot.iso) を併用すれば、5.6 GB 程度でもいける)。ここでは、 Silicon Power 製の 8G8 USB メモリ (P/N: SP008GBUF3M01V1B、USB 3.0 対応) を用いた。

インストール用 USB メモリの作成

  • 以下の手順を踏めば、インストール用 USB メモリが出来るはず。
  1. Linux PC (ここでは Scientific Linux 6.3 を用いた) に USB メモリを挿す。そうすると、通常ならば自動的にデバイス (例えば /dev/sdb) が作成され、自動的にマウントされる。どのデバイスに割り当てられたかは、端末上で以下の様に dmesg コマンドを打てばわかる。
    • $ dmesg
      ...
      csi 5:0:0:0: Direct-Access     UFD 3.0  Silicon-Power8G  1.00 PQ: 0 ANSI: 6
      sd 5:0:0:0: Attached scsi generic sg2 type 0
      sd 5:0:0:0: [sdb] 15155200 512-byte logical blocks: (7.75 GB/7.22 GiB)
      sd 5:0:0:0: [sdb] Write Protect is off
      sd 5:0:0:0: [sdb] Mode Sense: 23 00 00 00
      sd 5:0:0:0: [sdb] Assuming drive cache: write through
      sd 5:0:0:0: [sdb] Assuming drive cache: write through
       sdb: sdb1
      sd 5:0:0:0: [sdb] Assuming drive cache: write through
      sd 5:0:0:0: [sdb] Attached SCSI removable disk
      SELinux: initialized (dev sdb1, type vfat), uses genfs_contexts
      $ 
    • また、fdisk コマンドを使っても大体確認できる。
    • $ su
      root の password を入力
      # fdisk -l
      ...
      ディスク /dev/sdb: 7759 MB, 7759462400 バイト
      ヘッド 239, セクタ 62, シリンダ 1022
      Units = シリンダ数 of 14818 * 512 = 7586816 バイト
      セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      ディスク識別子: 0x53b0cd65
      
      デバイス ブート      始点        終点     ブロック   Id  システム
      /dev/sdb1               1        1022     7571967   83  Linux
    • これより、USB メモリが /dev/sdb に割り当てられたことが分かる。以下では、USB メモリが /dev/sdb に割り当てられたと仮定する。
    •  

  2. USB メモリのパーティションの作成とフォーマット
    • まずスーパーユーザになる。
    • $ su
       root の password を入力
    • さらに USB メモリのアンマウントを行う。(もしマウントされていなければ、この作業は必要ない。)
    • # umount /dev/sdb1
    • dd コマンドでマスターブートレコード(MBR)をリセットしておく。MBR は 512 バイトなので、dd コマンドの bs オプションでブロックサイズ : 512 バイト、 count オプションで ブロック数 : 1 を指定している。これで、/dev/sdb の MBR 領域がすべて NULL となる。(MBR が壊れていた場合、このコマンドでリセットしておくと後で fdisk が修復してくれる。壊れていない場合は必要無い作業かも。dd コマンドは /dev/sdb1 がマウントされていても、されていなくても使えるようだ?)
    • # dd if=/dev/zero of=/dev/sdb bs=512 count=1
      1+0 records in
      1+0 records out
      512 bytes (512 B) copied, 0.0121877 s, 42.0 kB/s
    • fdisk コマンドを用いてパーティションを作成
    • # fdisk /dev/sdb
      
      
      fdisk の入力コマンドは以下の通り
      
      
      n # 新しいパーティション作成
      p # 基本パーティション
      1 # パーティション番号
      <enter> # デフォルトの値
      +500M # 500 MB の領域確保
      n # 新しいパーティション作成
      p # 基本パーティション
      2 # パーティション番号
      <enter> # デフォルトの値
      <enter> # デフォルトの値(残りの全領域確保)
      t # タイプ(システムID)の変更
      1 # パーティション番号
      b # VFAT
      a # ブートフラグ変更
      1 # 変更するパーティション番号
      w # ディスクに書き込み(q で書き込みせず fdisk を抜ける)
    • 確認
    • # fdisk -l /dev/sdb
      ディスク /dev/sdb: 7759 MB, 7759462400 バイト
      ヘッド 239, セクタ 62, シリンダ 1022
      Units = シリンダ数 of 14818 * 512 = 7586816 バイト
      セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      ディスク識別子: 0xf2ea928e
      
      デバイス ブート      始点        終点     ブロック   Id  システム
      /dev/sdb1   *           1          70      518599    b  W95 FAT32
      /dev/sdb2              71        1022     7053368   83  Linux
    • さらに、 パーティションをフォーマットする。以下では、1 つ目のパーティションの名前を BOOT, 2 つ目を DATA にしている。これは、マウントされた時のディレクトリの名前になる。他の名前でも良い。
    • # mkfs.vfat -F 32 -n BOOT /dev/sdb1
      # mkfs.ext3 -L DATA /dev/sdb2 
    • 以上より、以下のようなパーティションが作成される。

Partition

ボリューム名

ファイルシステム

サイズ

システムタイプ?

/dev/sdb1

BOOT

FAT32

500 MB

W95 FAT32

/dev/sdb2

DATA

ext3

約 7 GB

Linux

  •  

  1. 次に、USB を抜き挿しする。SL6.3 の場合 /media ディレクトリ以下に /dev/sdb1 と /dev/sdb2 が /media/BOOT と /media/DATA という名前で自動的にマウントされる。(マウントされない場合は手動でマウントする。)以下のコマンドでマウントされたか確認できる。
    • # ls /media
      BOOT DATA
      # ls /media/BOOT
      # ls /media/DATA
      lost+found
    •  

  2. 次に、/mnt/DVD というディレクトリを作り、上でダウンロードした SL-64-x86_64-2013-03-21-Everything-DVD1.iso を mount コマンドでマウント(下記参照)。
    • # mkdir /mnt/DVD  # iso をマウントするディレクトリを作成
      # mount -t iso9660 -o loop isoをダウンロードしたディレクトリ/SL-64-x86_64-2013-03-21-Everything-DVD1.iso /mnt/DVD
      # ls /mnt/DVD # 中身を確認 
      EFI   Packages          RPM-GPG-KEY-sl3  RPM-GPG-KEY-sl6  isolinux
      EULA  RPM-GPG-KEY-cern  RPM-GPG-KEY-sl4  TRANS.TBL        repodata
      GPL   RPM-GPG-KEY-sl    RPM-GPG-KEY-sl5  images
    •  

  3. /mnt/DVD/isolinux ディレクトリを syslinux という名前で /media/BOOT ディレクトリにコピー
    • # cp -rv /mnt/DVD/isolinux /media/BOOT/syslinux
    •  

  4. /media/BOOT/syslinux 内の isolinux.cfg を syslinux.cfg という名前に変更
    • # mv /media/BOOT/syslinux/isolinux.cfg /media/BOOT/syslinux/syslinux.cfg
    •  

  5. /mnt/DVD/images ディレクトリを /media/BOOT ディレクトリにコピー
    • # cp -rv /mnt/DVD/images /media/BOOT/
    •  

  6. SL-64-x86_64-2013-03-21-Everything-DVD1.iso, SL-64-x86_64-2013-03-21-Everything-DVD2.iso を /media/DATA ディレクトリにコピー。下記のコマンド例では、sync コマンドを用いてコピーが(本当に)終わるのを待っている。ファイルをコピーする場合、ファイルの書き込みが終わる前に cp コマンドが終了する時がある。この場合、sync コマンドでバッファ内のデータをすべて USB メモリに書き込む。sync コマンドの実行終了が書き込みの終了に相当するようだ。サイズが大きいファイルのコピーの場合、sync コマンドもなかなか終わらない。
    • # cp -v isoをダウンロードしたディレクトリ/SL-64-x86_64-2013-03-21-Everything-DVD1.iso /media/DATA
      # cp -v isoをダウンロードしたディレクトリ/SL-64-x86_64-2013-03-21-Everything-DVD2.iso /media/DATA
      # sync
      #
    •  

  7. さらに、syslinux を yum コマンドを用いてインストールする。コマンド例は下記参照。yum コマンドでは、 -y オプションを指定するとパッケージのインストールをするか否かが聞かれなくなる。SL6.3 の場合、syslinux の version 4.02 がインストールされる。syslinux コマンドのバージョンが新しすぎる (version 5.01 とか) とうまくいかないかも(下記のエラーの項目参照)?
    • # yum -y install syslinux
    •  

  8. 下記の dd コマンドで syslinux 付属の MBR (Master Boot Record) コード(/usr/share/syslinux/mbr.bin)が MBR に書き込まれ、syslinux コマンドで /media/BOOT/ldsyslinux.sys というファイルが作成される。これで、ブートローダがインストールされたことになる(?)。ここで、 /usr/share/syslinux/mbr.bin は syslinux コマンドインストール時に一緒にインストールされるファイルである。さらに sync コマンドで、バッファ内のデータが USB メモリに書き込まれる。syslinux --> dd コマンドと実行した場合、さらに sync コマンドを実行しないと bootable な USB メモリが出来なかった。

    • # dd if=/usr/share/syslinux/mbr.bin of=/dev/sdb
      # syslinux /dev/sdb1
      # sync
    • ちなみに Windows 上で syslinux を実行したい場合は、syslinux をここからダウンロードし、展開。管理者権限でコマンドプロンプトを起動し、展開したディレクトリ内の win64 フォルダに移動。さらに、USB メモリを Windows PC に挿し、ドライブの割り当てを確認(ここでは、E: ドライブに割り当てられたとする)。さらに、コマンドプロンプトで以下の様なコマンドを打てば良い。これで、E:\ldsyslinux.sys ファイルの作成と MBR の書き込みが行われる。

    • cd syslinux-4.06\win64 のディレクトリ
      ***\syslinux-4.06\win64> syslinux64.exe -ma e:
    •  

  9. 以上でインストール用 USB メモリの完成。

USB メモリからインストール

  • インストール用 USB メモリからインストールする手順は以下の通り。主に通常の DVD からのインストールと違う箇所について書いた。通常のインストール方法については Google で調べる。
  1. USB メモリを PC に挿し PC を再起動
  2. DEL キーなどを押し BIOS 画面に入る
  3. USB から BOOT するようにする
  4. インストーラ開始
    • alt Installer_select_install_or_rescue.png

    •  

  5. 通常のインストール方法に従い、言語などを選択
  6. インストールメディアは Hard drive を選択
    • alt Installer_Installation_Method.png

    •  

  7. インストーラがある USB 上のパーティション(/dev/sdb1)を選択。
    • alt Installer_Select_Partition.png

    •  

  8. インストーラがスタート
    • alt Installer_SL6.png

    •  

  9. 通常のインストール方法に従い、インストールを進める
  10. 途中、イメージファイルが見つからないと出る
    • alt Installer_no_iso_image_no1.png

    • ISO 9660 イメージがありません
      
      インストーラーはイメージ #1 のマウントを試行しましたが、ハードディスク上に見つかりませんでした。
      
      このイメージをドライブにコピーしてから「再試行」をクリックしてください。「終了」をクリックするとインストールを中止します。
    •  

  11. Ctrl-Alt-F2 でシェル画面に行き、イメージファイルが保存されているパーティションを /mnt/isodir にマウントする。これはインストーラがイメージファイルを /mnt/isodir ディレクトリ内から探しているため(?)。具体的には下記のようなコマンドを打つ。
    • # df -k
      # ls /mnt/isodir
      # umount /mnt/isodir
      # mount /dev/sdb2 /mnt/isodir
      # ls /mnt/isodir
    • 実際の実行結果は以下の通り。
    • alt Installer_Crtl_Alt_F2_end.png

    •  

    • これらのコマンドは次のことをしている。まず df コマンドでマウントポイントを確認する。/dev/sdb1 (USB 上のインストーラがあるパーティション) が /mnt/isodir にマウントされていることがわかる。ls コマンドで /mnt/isodir の中身も一応確認しておく。さらに /mnt/isodir をアンマウントし、イメージファイルが保存されているパーティション : /dev/sdb2 を /mnt/isodir にマウント。最後に /mnt/isodir の中にイメージファイルがあることを確認。
    •  

    • ちなみに # fdisk -l の結果は以下の通り。
    • alt Installer_Crtl_Alt_F2_fdisk.png

    •  

  12. Ctrl-Alt-F6 でインストールの画面に戻り、再試行を選択
  13. 後は普通のインストール手順に従う

エラー集

  • USB 作成時

    • Windows 上で syslinux コマンドを用いる場合、管理者権限で実行したコマンドプロンプトを使用しないと、以下のようなメッセージが出る。管理者権限でコマンドプロンプトを実行すればよい。

    • Download\syslinux-4.06\win64> syslinux64.exe -ma e:
      
      Accessing physical drive: Access is denied.
      Did not successfully update the MBR; continuing...
    •  

  • ブート時(その1)

    • Windows 上で syslinux コマンドのバージョン 5.01 を用いて、USB メモリを作成すると、ブート時に以下のようなメッセージが出る。ここからどうすれば良いのか分からない。syslinux のバージョンが新たらしすぎてもダメなんだろうか? syslinux-4.06 を用いればこの問題は起きない。
    • - Press the <ENTER> key to begin the installation process.
      
      Failed to load COM32 file vesamenu.c32
    •  

  • ブート時(その2)

    • 上記の MBR の書き込みのところで、 以下の様に dd コマンドの前に、syslinux コマンドを実行しても構わない。ただしその場合、dd コマンドの後に sync コマンドを実行しておかないと、MBR に正しく書き込めない場合がある。MBR の書き込みが正しく行われないと、USB からブートしようとしても、初めの画面(黒地に白の _ (カーソル) が点滅)から進まなくなる。
    • # syslinux /dev/sdb1
      # dd if=/usr/share/syslinux/mbr.bin of=/dev/sdb
      # sync
    •  

  • NTFS でフォーマット

    • USB を NTFS でフォーマットし、インストール用 USB メモリを作成すると、ブート時に以下のエラーとなる。Sillicon Power 8 GB (USB 3.0) と Transend JetFlash 760 (USB 3.0) で同じメッセージ。Bootable な USB にするには、FAT32 でフォーマットする必要があるようだ。

    • BOOTMGR is missing
      Press Ctrl+ Alt + Del to restart
    •  

  • exFAT でフォーマット

    • USB を exFAT でフォーマットし、インストール用 USB メモリを作成すると、ブート時に以下のエラーとなる。Sillicon Power 8 GB (USB 3.0) と Transend JetFlash 760 (USB 3.0) で同じメッセージ。Bootable な USB にするには、FAT32 でフォーマットする必要があるようだ。

    • Remove disks or other media.
      Press any key to restart
    •  

  • UEFI?

    • Sillicon Power 8 GB (USB 3.0) を FAT32 でフォーマット。BIOS 画面に入り USB からブートすると以下の画面が出る。
      • UEFI: UFD 3.0 Silicon-Power8GB (7400MB)
      • UFD 3.0 Silicon-Power8GB (7400MB)
    • 上の方 (UEFI:) を選んでもだめだった。下の方を選ぶと、 ブートが始まる。
    •  

  • LiveUSB Creator

    • Fedora の LiveUSB Creatror では exFAT, NTFS では駄目で、FAT32 でフォーマットされている USB でないと駄目だった。
    • SL6.4 上 で LiveUSB Creator を使っても、ext4 はデバイスとして認識しなかった。FAT32 なら認識した。
    •  

  • インストール時のエラー

    • パーティションテーブルがおかしいと、以下のようなメッセージが出る。
    • alt Installer_error_of_install_source.png

    • 不明なデバイス
      
      デバイス['/dev/sdb1']で与えられたインストールソースが見つかりません。パラメータをチェックしてもう一度試して下さい。
      
      インストーラーを終了する(E)
    • この USB を Scientific Linux 付属のディスク・ユーティリティで確認すると、以下のように "パーティション: 不明なスキーム" となっている。
    • alt USB-unknown_scheme.png

    •  

    • このような場合、パーティションテーブルの修復を行えば良い。ディスク・ユーティリティーを用いる場合は "ドライブをフォーマット" ボタンを押し、"マスターブートレコード" でフォーマットすれば良い。
    • コマンドライン上で行う場合は、以下のように MBR をリセットし、fdisk でパーティションを作成すればよい。
    • # dd if=/dev/zero of=/dev/sdb bs=512 count=1
      1+0 records in
      1+0 records out
      512 bytes (512 B) copied, 0.0121877 s, 42.0 kB/s
      # fdisk /dev/sdb
      ...
      パーティションを作成

ファイルシステムのメモ

  • それぞれのファイルシステムの特徴は以下の通り。