Ubuntu 12.04 環境で、バックアップ用 HDD を増設。fdisk を使ってパーティションを切ろうとした時に、はまったのでメモしておく。
/dev/sda でメインシステムを運用。HDD を増設して、/dev/sdb とし、/dev/sda と同じパーティションを切って、バックアップを取りたい。
1. /dev/sda のパーティション情報を元に、/dev/sdb のパーティションを設定 (説明省略)
結果はこんな感じ。ここまでは問題なかった。
# fdisk /dev/sdb The device presents a logical sector size that is smaller than the physical sector size. Aligning to a physical sector (or optimal I/O) size boundary is recommended, or performance may be impacted. コマンド (m でヘルプ): p Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes ヘッド 255, セクタ 63, シリンダ 121601, 合計 1953525168 セクタ Units = セクタ数 of 1 * 512 = 512 バイト セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト ディスク識別子: 0x4f95d8ca デバイス ブート 始点 終点 ブロック Id システム /dev/sdb1 2048 195311615 97654784 83 Linux /dev/sdb2 195311616 390623231 97655808 83 Linux /dev/sdb3 390623232 453124095 31250432 82 Linux スワップ / Solaris /dev/sdb4 453124096 1953525167 750200536 83 Linux
2. sfdisk で確認
ムムム、なんだこれは? 期待値? 検出値?
# sfdisk -l ディスク /dev/sda: シリンダ数 121601、ヘッド数 255、63 セクタ/トラック ユニット = 8225280 バイトのシリンダ、1024 バイトのブロック、0 から数えます デバイス 起動 始点 終点 #シリンダ #ブロック ID システム /dev/sda1 * 0+ 12157- 12158- 97654784 83 Linux /dev/sda2 12157+ 24315- 12158- 97655808 83 Linux /dev/sda3 24315+ 28205- 3891- 31250432 82 Linux スワップ / Solaris /dev/sda4 28205+ 121601- 93396- 750199808 83 Linux ディスク /dev/sdb: シリンダ数 121601、ヘッド数 255、63 セクタ/トラック ユニット = 8225280 バイトのシリンダ、1024 バイトのブロック、0 から数えます デバイス 起動 始点 終点 #シリンダ #ブロック ID システム /dev/sdb1 0+ 12157- 12158- 97654784 83 Linux 終点: (c,h,s) 期待値=(1023,254,63) 検出値=(893,149,24) /dev/sdb2 12157+ 24315- 12158- 97655808 83 Linux 開始: (c,h,s) 期待値=(1023,254,63) 検出値=(893,149,25) 終点: (c,h,s) 期待値=(1023,254,63) 検出値=(763,43,48) /dev/sdb3 24315+ 28205- 3891- 31250432 82 Linux スワップ / Solaris 開始: (c,h,s) 期待値=(1023,254,63) 検出値=(763,43,49) 終点: (c,h,s) 期待値=(1023,254,63) 検出値=(557,170,61) /dev/sdb4 28205+ 121601- 93396- 750200536 83 Linux 開始: (c,h,s) 期待値=(1023,254,63) 検出値=(557,170,62) 終点: (c,h,s) 期待値=(1023,254,63) 検出値=(769,80,63)
3. 答えはここにありました
http://ubuntuforums.org/archive/index.php/t-1013167.html
4. 早速試す
# sfdisk -d /dev/sdb | sfdisk --force /dev/sdb 現在、誰もこのディスクを使っていないかを調べます... OK ディスク /dev/sdb: シリンダ数 121601、ヘッド数 255、63 セクタ/トラック 古い状態: ユニット = 8225280 バイトのシリンダ、1024 バイトのブロック、0 から数えます デバイス 起動 始点 終点 #シリンダ #ブロック ID システム /dev/sdb1 0+ 12157- 12158- 97654784 83 Linux 終点: (c,h,s) 期待値=(1023,254,63) 検出値=(893,149,24) /dev/sdb2 12157+ 24315- 12158- 97655808 83 Linux 開始: (c,h,s) 期待値=(1023,254,63) 検出値=(893,149,25) 終点: (c,h,s) 期待値=(1023,254,63) 検出値=(763,43,48) /dev/sdb3 24315+ 28205- 3891- 31250432 82 Linux スワップ / Solaris 開始: (c,h,s) 期待値=(1023,254,63) 検出値=(763,43,49) 終点: (c,h,s) 期待値=(1023,254,63) 検出値=(557,170,61) /dev/sdb4 28205+ 121601- 93396- 750200536 83 Linux 開始: (c,h,s) 期待値=(1023,254,63) 検出値=(557,170,62) 終点: (c,h,s) 期待値=(1023,254,63) 検出値=(769,80,63) 新しい状態: ユニット = 512 バイトのセクタ、0 から数えます デバイス 起動 始点 終点 #セクタ ID システム /dev/sdb1 2048 195311615 195309568 83 Linux /dev/sdb2 195311616 390623231 195311616 83 Linux /dev/sdb3 390623232 453124095 62500864 82 Linux スワップ / Solaris /dev/sdb4 453124096 1953525167 1500401072 83 Linux 警告: パーティション 1 はシリンダ境界で終わっていません 警告: パーティション 2 はシリンダ境界から始まっていません 警告: パーティション 2 はシリンダ境界で終わっていません 警告: パーティション 3 はシリンダ境界から始まっていません 警告: パーティション 3 はシリンダ境界で終わっていません 警告: パーティション 4 はシリンダ境界から始まっていません 警告: パーティション 4 はシリンダ境界で終わっていません 警告: ブート可能な基本パーティションがありません LILO にとっては問題ありませんが、DOS MBR はこのディスクをブートできなく なってしまいます。 新しいパーティション情報の書き込みに成功しました パーティション情報を読み込み直しています... BLKRRPART: デバイスもしくはリソースがビジー状態です パーティションテーブルを再読込みするコマンドが失敗しました。 mkfs を使う前に、partprobe(8) か kpartx(8) を実行するか、 システムを再起動してください もし、DOS パーティションを作成または変更したならば -- たとえば /dev/foo7 、 dd(1) をつかって最初の 512 バイトをゼロにして下さい: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (詳細は fdisk(8)を見てください。)
5. 再度 sfdisk で確認。
よしよし (解決)。
# sfdisk -l ディスク /dev/sda: シリンダ数 121601、ヘッド数 255、63 セクタ/トラック ユニット = 8225280 バイトのシリンダ、1024 バイトのブロック、0 から数えます デバイス 起動 始点 終点 #シリンダ #ブロック ID システム /dev/sda1 * 0+ 12157- 12158- 97654784 83 Linux /dev/sda2 12157+ 24315- 12158- 97655808 83 Linux /dev/sda3 24315+ 28205- 3891- 31250432 82 Linux スワップ / Solaris /dev/sda4 28205+ 121601- 93396- 750199808 83 Linux ディスク /dev/sdb: シリンダ数 121601、ヘッド数 255、63 セクタ/トラック ユニット = 8225280 バイトのシリンダ、1024 バイトのブロック、0 から数えます デバイス 起動 始点 終点 #シリンダ #ブロック ID システム /dev/sdb1 0+ 12157- 12158- 97654784 83 Linux /dev/sdb2 12157+ 24315- 12158- 97655808 83 Linux /dev/sdb3 24315+ 28205- 3891- 31250432 82 Linux スワップ / Solaris /dev/sdb4 28205+ 121601- 93396- 750200536 83 Linux
● fdisk, 期待値, 境界値, sfdisk, パーティション, partition, sda, sdb, おかしい, 変, expected, found, (c,h,s)