[Armadillo:00834] Re: Armadilloのsfdiskについて
Fumito Morishima
email@hidden
2006年 1月 30日 (月) 22:30:08 JST
森島です。
Debianからソースを取得して確認したところ、
sdfiskのソースにバグがあるようです(version 3.08)。
構造体のアライメントにより、パーティション情報を
読み取る位置がずれています。
sfdisk.c 内の struct partition と struct chs に
__attribute__((packed)) を付けると
問題なく動作することを確認しました。
takamichi takahashi wrote:
> 高橋と申します。お世話になります。
>
> armadilloのsfdiskについて質問です。
>
> fdiskでパーティションを設定した後、sfdiksでパーティションを
> ダンプし、ダンプしたファイルで再びsfdiksすると、
> パーティションの状態が変わってしまいました。
> これは、正しい動作なのでしょうか?
>
>
> 目的は、スクリプトでCFのパーティションを設定する事です。
> ネット上で検索した結果、sfdiskに行き着きました。
> スクリプトからパーティションを設定する一般的な手段として、
> 他に何かありましたら、ご教授いただければ幸いです。
>
>
> 1.fdiskを使用しCFのパーティションを設定する。
> (128MBのCFで、hda1が25MB,hda2が10MB)
>
> Disk /dev/hda: 128 MB, 128188416 bytes
> 8 heads, 32 sectors/track, 978 cylinders
> Units = cylinders of 256 * 512 = 131072 bytes
>
> Device Boot Start End Blocks Id System
> /dev/hda1 1 201 25712 83 Linux
> /dev/hda2 202 282 10368 83 Linux
>
> 2.sfdiskを使用し、パーティションのダンプと作成。
> [email@hidden (ttyp0) /sbin]# sfdisk -d /dev/hda > hdainf
> [email@hidden (ttyp0) /sbin]# cat hdainf
> # partition table of /dev/hda
> unit: sectors
>
> /dev/hda1 : start= 32, size= 51424, Id=83
> /dev/hda2 : start= 0, size= 0, Id= 0
> /dev/hda3 : start= 0, size= 0, Id= 0
> /dev/hda4 : start= 0, size= 0, Id= 0
>
> 3.sfdiskを使用し、パーティションの作成。
> [email@hidden (ttyp0) /sbin]# sfdisk /dev/hda < hdainf
>
> 4.fdiskでパーティション表示。
> Disk /dev/hda: 128 MB, 128188416 bytes
> 8 heads, 32 sectors/track, 978 cylinders
> Units = cylinders of 256 * 512 = 131072 bytes
>
> Device Boot Start End Blocks Id System
> /dev/hda1 1 201 25712 83 Linux
> /dev/hda2 1 1 0 83 Linux
> Partition 2 has different physical/logical beginnings (non-Linux?):
> phys=(201, 0, 1) logical=(0, 0, 1)
> Partition 2 has different physical/logical endings:
> phys=(281, 7, 32) logical=(16777215, 7, 32)
>
> Partition table entries are not in disk order
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/armadillo
armadillo メーリングリストの案内