[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

get_real_geom() Re: src/distrib/utils/sysinst/geom.c



>                                            千葉市中央区長洲
>                                                    藤原  誠
src/distrib/utils/sysinst/install.c
から呼ばれている
src/distrib/utils/sysinst/geom.c
の中の get_real_geom(disk, l)
は正しく Apple label を読んでいるのかな
と思っているきょうこの頃です。つまり

1. MacOS 9.1 CDROM で起動して
2. 区画して
3. HFS 区画に ofwboot.elf と netbsd.GENERIC_MD.gz を入れて
4. OF から boot hd:12,ofwboot.elf netbsd.GENERIC_MD.gz で起動

してから、sysinst で、

1.  a: Install NetBSD to hard disk

  a) Partition your disk
  b) Create new BSD file system
  c) Load and install distribution sets

  Shall we continue?
  b: Yes
2. I found only one disk, wd0. Therefore I assume you want to 
  install NetBSD on it.
  a: ok

3. 
  a: Standard
  b: Standard with X
  c: Custom
  d: Use Existing
で d: を選ぶと

4.
c: 19077  0   19076  unused

しか表示されないのは何か変だなぁと思っている訳です。
get_real_geom() ってとても短いので、付けておきますが
これだけのものが読めません。
---------------------------------------------------
int
get_real_geom(disk, l)
        char *disk;
        struct disklabel *l;
{
        char diskpath[MAXPATHLEN];
        int fd;

        /* Open the disk. */
        fd = opendisk(disk, O_RDONLY, diskpath, sizeof(diskpath), 0);
        if (fd < 0) 
                return 0;

        if (ioctl(fd, DIOCGDINFO, (char *)l) < 0) {
                (void)close(fd);
                return 0;
        }
        (void)close(fd);
        return 1;
}
---------------------------------------------------
/usr/include/sys/dkio.h:
には次の行が見えます。
#define DIOCGDINFO      _IOR('d', 101, struct disklabel)/* get */

get_geom の方には次の字が使われています。
#define DIOCGDEFLABEL   _IOR('d', 114, struct disklabel)
---
(藤原)
http://www.ki.nu/software/NetBSD/iBook2/