[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 メーリングリストの案内