Big Sector 問題とは?

USB-Ubuntu の作成

CentOSのUSBインストーラ作成

  1. USBメモリスティックを Unmount して、MBR を破壊する
    $ umount /media/CDEE-AAEE 
    $ sudo dd if=/dev/zero of=/dev/sdb bs=512 count=64
    64+0 records in
    64+0 records out
    32768 bytes (33 kB) copied, 0.0760476 s, 431 kB/s
  2. fdisk でパーティションを作る
    /media$ sudo fdisk /dev/sdb
    1. 現在の状態を確認
      Command (m for help): p
      
      Disk /dev/sdb: 4040 MB, 4040724480 bytes
      125 heads, 62 sectors/track, 1018 cylinders
      Units = cylinders of 7750 * 512 = 3968000 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disk identifier: 0xd309dcf3
      
         Device Boot      Start         End      Blocks   Id  System
  1. 必要があればパーティションを削除
    Command (m for help): d
    No partition is defined yet!
  2. パーティションの作成
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-1018, default 1): 
    Using default value 1
    Last cylinder, +cylinders or +size{K,M,G} (1-1018, default 1018): 
    Using default value 1018
  3. 第1パーティションをブート領域にする
    Command (m for help): a
    Partition number (1-4): 1
  4. 現在の設定状況を確認
    Command (m for help): p
    
    Disk /dev/sdb: 4040 MB, 4040724480 bytes
    125 heads, 62 sectors/track, 1018 cylinders
    Units = cylinders of 7750 * 512 = 3968000 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0xd309dcf3 
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1   *           1        1018     3944719   83  Linux
  5. 変更結果の反映
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    
    ubuntu:/media$ 
  1. FAT32でフォーマット
    $ sudo mkfs.vfat /dev/sdb1
    mkfs.vfat 3.0.7 (24 Dec 2009)
  2. SYSLINUX のインストール
    $ sudo syslinux /dev/sdb1
  3. ブートストラップのインストール
    $ wget http://prdownloads.sourceforge.net/ms-sys/ms-sys-2.2.0.tar.gz?download
    $ sudo apt-get install gettext
    $ tar -xzf ms-sys-2.2.0.tar.gz 
    $ cd ms-sys-2.2.0/
    $ make
    $ sudo make install
    $ sudo ms-sys -s /dev/sdb
    Public domain syslinux master boot record successfully written to /dev/sdb
    • gettext をインストールしているのは、ms-sys がメッセージを翻訳するときに msgfmt が必要なため。
    • Ubuntu にこのパッケージがないのは、著作権がグレーなため (Microsoft の持つ DOS や WindowsNT のブートストラップの権利を侵害している可能性アリ)
  4. ネットワークインストールイメージの格納
    1. ISO ファイルの取得
      $ wget http://ftp.jaist.ac.jp/pub/Linux/CentOS/5.5/isos/i386/CentOS-5.5-i386-netinstall.iso
    2. ISO ファイルを USB メモリにコピー
      $ sudo cp CentOS-5.5-i386-netinstall.iso /media/30A4-553A/
    3. インストール CD の /isolinux 以下を USB の / にコピーする (/boot でもいいらしい)
      $ sudo mkdir /media/iso
      $ sudo mount -t iso9660 -o loop,ro CentOS-5.5-i386-netinstall.iso /media/iso
      $ sudo cp /media/iso/isolinux/* /media/30A4-553A/
    4. isolinux.cfg を syslinux.cfg に変更
      $ cd /media/30A4-553A/
      $ mv isolinux.cfg syslinux.cfg

パーティション分割

まずは、容量ベースでパーティションを切った場合に、パーティション境界がどうなるのかを試してみる

  1. /boot には、128MB
    ubuntu@ubuntu:~$ sudo fdisk /dev/sda
    コマンド (m でヘルプ): n
    コマンドアクション
       e   拡張
       p   基本パーティション (1-4)
    p
    パーティション番号 (1-4): 1
    最初 シリンダ (1-2610, 初期値 1): 
    初期値 1 を使います
    Last シリンダ, +シリンダ数 or +size{K,M,G} (1-2610, 初期値 2610): +128M
  2. swap に 1GB
    コマンド (m でヘルプ): n
    コマンドアクション
       e   拡張
       p   基本パーティション (1-4)
    p
    パーティション番号 (1-4): 2
    最初 シリンダ (18-2610, 初期値 18): 
    初期値 18 を使います
    Last シリンダ, +シリンダ数 or +size{K,M,G} (18-2610, 初期値 2610): +1G
  3. 残りは / に全部
    コマンド (m でヘルプ): n
    コマンドアクション
       e   拡張
       p   基本パーティション (1-4)
    p
    パーティション番号 (1-4): 3
    最初 シリンダ (150-2610, 初期値 150): 
    初期値 150 を使います
    Last シリンダ, +シリンダ数 or +size{K,M,G} (150-2610, 初期値 2610): 
    初期値 2610 を使います
  4. エキスパートモードに切り替えてパーティションテーブルを見ると、パーティション境界のセクタ番号は当然のことながら 8 の倍数になってない
    コマンド (m でヘルプ): x
    
    上級者コマンド (m でヘルプ): p
    
    ディスク /dev/sda: ヘッド 255, セクタ 63, シリンダ 2610
    
    Nr AF  Hd Sec  Cyl  Hd Sec  Cyl       開始      サイズ ID
     1 00   1   1    0 254  63   16         63     273042 83
     2 00   0   1   17 254  63  148     273105    2120580 83
     3 00   0   1  149 254  63 1023    2393685   39535965 83
     4 00   0   0    0   0   0    0          0          0 00
  5. このパーティション境界を参考に、次回セクタ指定でパーティションを切る。fdisk は、w ではなく q で終了する(実際に HDD に変更内容を反映せずに終わる)
    上級者コマンド (m でヘルプ): q

セクタ指定でパーティションを分割する

  1. uオプション付きで fdisk を起動すると、セクタでパーティションを分割できる
    ubuntu@ubuntu:~$ sudo fdisk /dev/sda -u
  2. /boot 用に 64 セクタ目から、大体 273105 セクタ近辺をパーティション1として確保
    コマンド (m でヘルプ): n
    コマンドアクション
       e   拡張
       p   基本パーティション (1-4)
    p
    パーティション番号 (1-4): 1
    最初 セクタ (63-41943039, 初期値 63): 64
    Last セクタ, +セクタ数 or +size{K,M,G} (64-41943039, 初期値 41943039): 272999
  3. swap 用に 273000 セクタ目から、大体 2393685 セクタ近辺をパーティション2として確保
    コマンド (m でヘルプ): n
    コマンドアクション
       e   拡張
       p   基本パーティション (1-4)
    p
    パーティション番号 (1-4): 2
    最初 セクタ (63-41943039, 初期値 63): 273000
    Last セクタ, +セクタ数 or +size{K,M,G} (273000-41943039, 初期値 41943039): 2120999
  4. / 用に 2121000 から最後のセクタまでを確保
    コマンド (m でヘルプ): n
    コマンドアクション
       e   拡張
       p   基本パーティション (1-4)
    p
    パーティション番号 (1-4): 3
    最初 セクタ (63-41943039, 初期値 63): 2121000
    Last セクタ, +セクタ数 or +size{K,M,G} (2121000-41943039, 初期値 41943039): 
    初期値 41943039 を使います
  5. 確認
    コマンド (m でヘルプ): p
    
    ディスク /dev/sda: 21.5 GB, 21474836480 バイト
    ヘッド 255, セクタ 63, シリンダ 2610, 合計 41943040 セクタ
    Units = セクタ数 of 1 * 512 = 512 バイト
    セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    ディスク識別子: 0x0a99868b
    
    デバイス ブート      始点        終点     ブロック   Id  システム
    /dev/sda1              64      272999      136468   83  Linux
    パーティション 1 は、シリンダ境界で終わっていません。
    /dev/sda2          273000     2120999      924000   83  Linux
    パーティション 2 は、シリンダ境界で終わっていません。
    /dev/sda3         2121000    41943039    19911020   83  Linux
    • シリンダ境界云々という警告が出ているけど、CHS(Cylinder/Head/Sector) の三次元的な位置が物理的な円盤(disc)の場所を示していたのははるか昔のことなので無視。(下位互換のために残されている機能。CHS では、512MB までしか表せない)
    • ATA規格(SCSIは昔から)で、論理的なセクタ番号 LBA(Logical Block Addressing) で、ディスク上の位置示すようになった
    • 今回、BigSector? で、さらに LBA をごまかそうという話になっている。
  6. パーティションテーブルへ実際に設定内容を書き込む
    コマンド (m でヘルプ): w
    パーティションテーブルは変更されました!
    
    ioctl() を呼び出してパーティションテーブルを再読込みします。
    ディスクを同期しています。

で、どーなった?

ubuntu@ubuntu:~$ sudo fdisk -l /dev/sda

ディスク /dev/sda: 21.5 GB, 21474836480 バイト
ヘッド 255, セクタ 63, シリンダ 2610
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x0a99868b

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1               1          17      136468   83  Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2              17         133      924000   83  Linux
パーティション 2 は、シリンダ境界で終わっていません。
/dev/sda3             133        2611    19911020   83  Linux

ubuntu@ubuntu:~$ sudo fdisk -l /dev/sda1

ディスク /dev/sda1: 139 MB, 139743232 バイト
ヘッド 255, セクタ 63, シリンダ 16
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

ディスク /dev/sda1 は正常なパーティションテーブルを含んでいません
ubuntu@ubuntu:~$ sudo fdisk -l /dev/sda2

ディスク /dev/sda2: 946 MB, 946176000 バイト
ヘッド 255, セクタ 63, シリンダ 115
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

ディスク /dev/sda2 は正常なパーティションテーブルを含んでいません
ubuntu@ubuntu:~$ sudo fdisk -l /dev/sda3

ディスク /dev/sda3: 20.4 GB, 20388884480 バイト
ヘッド 255, セクタ 63, シリンダ 2478
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00000000

ディスク /dev/sda3 は正常なパーティションテーブルを含んでいません
ubuntu@ubuntu:~$ 

CentOSのインストール

なんかメッチャ遅いんですが・・・

ということで Fedora 13 にする


Fedora 13 Server


添付ファイル: fileaft3.png 709件 [詳細] fileUSBUbuntu.png 759件 [詳細] fileaft1.png 719件 [詳細] fileaft2.png 696件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   sitemap
Last-modified: 2010-06-13 (日) 22:48:18 (2367d)
ISBN10
ISBN13
9784061426061