Hack
device
  追加
  pci dump
DiskLabel
    fictitious
    magic number
  remrunqueue
  uvm
    pmap.c
    pmap_enter
autoconfiguration
  Question
  acpi
  profiling
  問題解決
Porting
Boot
build.sh
  machine
参照
  書籍・雑誌
  URL

Last Update: "2007/03/16 00:47:23 makoto"
Software 入口 | NetBSD 解説 | sysinst | macppc | pkgsrc 各論 | TsubaiBSD 絹/software/全文検索
at www.ki.nu

Hack NetBSD

Last Update: "2011/08/14 18:21:47 makoto"

DiskLabel

Re: Booting NetBSD on Old World Mac
http://mail-index.netbsd.org/port-macppc/2007/12/15/0000.html
disklabel の不思議 (とくださん tokuda.net の 2008/04 の日記から)
1. (04/08) | 2. (04/09) | 3. (04/09)

fictitious

fictitious
# /dev/rsd1c:
type: SCSI
disk: mydisk
label: fictitious
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 64
sectors/cylinder: 4032
cylinders: 19386
total sectors: 78165360
rpm: 7200
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # microseconds
track-to-track seek: 0  # microseconds
drivedata: 0 

magic number

次のように言われるのは何 ?
partition> W
Label disk [n]? y
disklabel: ioctl DIOCWDINFO: Label magic number or checksum is wrong!
(disklabel or kernel is out of date?)
Label not written
partition> 
区画 の項目に書いたように、disk の先頭にある情報の取扱いについては、次のよ うな用語・道具があります。
道具 処理対象 (書込先) 機種
fdisk MBR PC/AT
disklabel NetBSD label NetBSD
pdisk Apple Partition Map macppc
BSD の由緒ある情報は disklabel ですが、その後に出て来た PC/AT の情報 との互換性から、この両方の情報が必要です。 現状では、MBR が第一の情報で、その中に disklabel や apm がある、と考えるの が妥当です。で、disklabel を書く時に、MBR があることを前提とする arch と、そうでない arch があります。 あるいは、 MBR に何か変なものが書いてあると遠慮するけれど、 何もなければ書いてくれる、 という arch もあります (i386)。
  1. dd を使って先頭部分を消しておく
  2. fdisk を使って初期化しておく
  3. 既に label が書いてある disk から dd で一部を写す
のどれかで解消出来ると思われます。1. は
dd if=/dev/zero of=/dev/wd0a count=4
などの方法で行ないます。書込先を間違えると大変なことに なりますから、
  • back up をとっておく
  • of= の先については、実行する前に何度も確認する
などの注意が必要です。特にいくつも disk がつながっている機械 では細心の注意が要ります。 2. の方法の場合には、
fdisk -u /dev/wd0c
のように始めて以後対話的に作業します。

3. がある意味、安易で確実かも知れませんが、 ある disk (wd0) の label を wd1 にそっくり写すような場合です。 その時に、 次のように NetBSD label の位置を知って、そこから写します。 MBR 形式を使っている arch では、 例えば、次のように c: が 1526173 から始まっていた場合に 0 から写す他に

# size offset fstype [fsize bsize cpg/sgs] a: 14336784 1526173 RAID # (Cyl. 1514*- 15737*) b: 273097 771128 RAID # (Cyl. 765*- 1035*) c: 975241892 1526173 unused 0 0 # (Cyl. 1514*- 969015*) d: 976773168 0 unused 0 0 # (Cyl. 0 - 969020) e: 771057 63 Linux Ext2 0 0 # (Cyl. 0*- 764) f: 1024128 15862957 swap # (Cyl. 15737*- 16753*) g: 481948 1044225 Linux Ext2 0 0 # (Cyl. 1035*- 1514*) h: 959880980 16887085 RAID # (Cyl. 16753*- 969015*)
次のようにそこから 40 セクタくらいを写します。
# dd if=/dev/rwd0d of=/dev/rwd1d count=40 # dd if=/dev/rwd0d of=/dev/rwd1d skip=1526173 seek=1526173 count=40
Last Update: Sat, 07 Jun 2014 13:16:17 GMT 1.66 2008/03/08