From owner-FreeBSD-users-jp@jp.freebsd.org  Fri Sep 29 19:55:34 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id TAA28987;
	Fri, 29 Sep 2000 19:55:34 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from gate.keisu.t.u-tokyo.ac.jp (gate.keisu.t.u-tokyo.ac.jp [133.11.68.1])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id TAA28982
	for <FreeBSD-users-jp@jp.freebsd.org>; Fri, 29 Sep 2000 19:55:33 +0900 (JST)
	(envelope-from simokawa@sat.t.u-tokyo.ac.jp)
Received: from sylph.sat.t.u-tokyo.ac.jp (sylph.sat.t.u-tokyo.ac.jp [10.6.1.20])
	by gate.keisu.t.u-tokyo.ac.jp (Postfix) with ESMTP
	id 5FBBB3D9D; Fri, 29 Sep 2000 19:55:33 +0900 (JST)
Received: from localhost (ett.sat.t.u-tokyo.ac.jp [10.6.1.30])
	by sylph.sat.t.u-tokyo.ac.jp (Postfix) with ESMTP
	id D101E2DC77; Fri, 29 Sep 2000 19:55:27 +0900 (JST)
To: FreeBSD-users-jp@jp.freebsd.org, knu@idaemons.org
In-Reply-To: <861yycacei.wl@archon.local.idaemons.org>
References: <39CAA34E.F7081285@dnet.co.jp>
	<20000922102920.13951.qmail@amdk6.honkan3.tmca.ac.jp>
	<861yycacei.wl@archon.local.idaemons.org>
X-Face: OE([KxWyJI0r[R~S/>7ia}SJ)i%a,$-9%7{*yihQk|]gl}2p#"oXmX/fT}Bn7:#j7i14gu$
 jgR\S*&C3R/pJX<mI-4Z8'mqt1R'CjWdw-xqVoilv`\JgZcquM5oVuO^<vt/~051rCDM(`{rM~?{Ok
 r,XC+}Ycm9IJO)odT*-0nyJjBJYzL{GsZ
X-Mailer: Mew version 1.94.1 on XEmacs 21.2 (Shinjuku)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <20000929195527I.simokawa@sat.t.u-tokyo.ac.jp>
Date: Fri, 29 Sep 2000 19:55:27 +0900
From: Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
X-Dispatcher: imput version 20000414(IM141)
Lines: 114
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: FreeBSD-users-jp 55654
Subject: [FreeBSD-users-jp 55654] Re: HDD =?ISO-2022-JP?B?GyRCJE4bKEIg?=
 =?ISO-2022-JP?B?GyRCJV4lJiVzJUgkSyREJCQkRhsoQg==?= 
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: simokawa@sat.t.u-tokyo.ac.jp

$B$7$P$i$/A0$NOCBj$G$9$,(B,

knu> $B!!(BFreeBSD ports $B$K(B sysutils/gpart $B$H$7$F<}O?$5$l$F$$$k(B gpart
knu> (http://home.pages.de/~michab/gpart/) $B$r;H$&$H!"%I%i%$%VFb$r(B
knu> $B%9%-%c%s$7$F%Q!<%F%#%7%g%s(B($B%G%#%9%/%i%Y%k(B)$B$d%9%i%$%9>pJs$r=&$$!"(B
knu> $B2DG=$J8B$jI|85$7$F$/$l$^$9!#(B
knu> 
knu> $B!!$3$J$$$@(B WANT_STATIC $B$H$$$&%*%W%7%g%s$rMQ0U$7$F$*$$$?$N$G!"(B
knu> 
knu> 	$ cd /usr/ports/sysutils/gpart
knu> 	$ make -DWANT_STATIC install
knu> 
knu> $B$H$9$k$3$H$G(B /usr/local/sbin/gpart $B$K(B static linked binary $B$,(B
knu> $B$G$-$^$9!#$3$$$D$r6[5^:n6HMQ%U%m%C%T!<$K$G$bF~$l$F$*$1$P!"$$$D$+(B
knu> $BLr$KN)$D$3$H$G$7$g$&!#(B

$B$X!<(B, $B$d$C$Q$j$3$$$&$N$"$k$s$G$9$M(B.

$B$A$g$C$H;H$C$F$_$^$7$?$,(B, $B$3$l$O$$$o$f$k(B fdisk label (da0s1-da0s4$B$H$+(B)
$B$@$1$rI|3h$7$F$/$l$k$_$?$$$G$9(B. da0s1a-da0s2h $B$H$+$N(B disklabel $B$OC5$7$F(B
$B8+$D$1$F$/$l$^$9$,(B, $B$=$l$,2u$l$F$$$?>l9g$KI|3h$7$F$/$l$k$o$1(B
$B$G$O$J$5$=$&$G$9(B.

swap partition $B$J$s$F$I$&$d$C$F8+$D$1$k$N$+$H;W$C$?$N$G$9$,(B,
linux $B$N>l9g$O(B fdisk partition $B$K$"$k$+$i$3$l$G$G$-$k$N$G$9$M(B.

$B$o$?$7$O:#$^$G(B, 2$B2s$[$I$J$/$J$C$F$7$^$C$?(B disklabel $B$rI|3h$5$;$?(B
$B$3$H$,$"$j$^$9$,(B, fdisk label $B$N$[$&$O(B, $B9,$$$K$7$FA4It(B FreeBSD
$B$K$7$F$$$?$j(B, $B$=$b$=$b(B, $B$=$s$J$b$N$,$J$$(B sparc $B$@$C$?$j$7$?$N$G(B
$B$"$^$j6lO+$7$^$;$s$G$7$?(B.

$B$5$F(B, da0a-da0h $B$H$+$N(B disklabel $B$N(B $BI|3hJ}K!$G$9$,(B, ufs $B$N(B
partition $B$K$D$$$F$O(B, superblock $B$N(B magic number $B$rMj$j$K(B
$B?dDj$9$k$3$H$,2DG=$G$9(B(super block $B$,$U$C$H$s$G$$$J$1$l$P(B).

2$B2sL\$K$d$C$?$H$-$K(B, $B$b$&<j:n6H$G7W;;$9$k$N$O$$$d$@$H;W$C$F(B
script $B$K$7$^$7$?(B. $B$3$N$J$+$K<j=g$O5-=R$5$l$F$$$^$9$N$G(B,
$BIT9,$K$b(B disklabel $B$r<:$J$C$F$7$^$C$?J}$O;29M$K$7$F$/$@$5$$(B.

disklabel $B$,$U$C$H$s$@$H$-$K(B python $B$,;H$($k$+$o$+$j$^$;$s$,(B,
diskless $B$G(B boot $B$9$k$J$j(B, script $B$HF1$8$h$&$J$3$H$r(B
'od -X /dev/xxx | grep' $B$d$i$G<j$G<B9T$7$F$/$@$5$$(B.

$BK\Ev$O(B, netbsd $B$_$?$$$K(B cron $B$G(B disklabel $B$r(B backup $B$7$F$*$1$PNI$$$N$G(B
$B$7$g$&$,(B, $B@\B3$5$l$F$$$k(B disk(FDISK partition) $B$N0lMw$C$F$I$&$d$C$?$i(B
($BHf3SE*4JC1$K(B)$B<j$K$O$$$k$G$7$g$&$+(B?
netbsd$B$O(B iostat -x $B$H$+$$$&(B option $B$,$"$k$_$?$$(B.

#!/usr/local/bin/python
#
# $Id: recover-disklabel,v 1.2 2000/09/05 16:10:06 simokawa Exp $
#	Recover disklabel for ufs from superblock magic number.
#	Usage: ./recover-disklabel /dev/ad0s1


do_seek = 1
import sys,struct

#block_size=512
block_size=8192
sector_size=512
magic = 0x00011954
magic_offset = 1372 + 8192
size_offset = 4 * 9
fsize_offset = 4 * 13
sblkno_offset = 4 * 2
offset = magic_offset % block_size
first_interval = 8192
bufsize = 1024 * 1024

fd=open(sys.argv[1], 'r', bufsize)

label = []
last_magic = 0
last_partition = 0
pos = long(offset)
while 1:
	d = fd.read(block_size)
	if len(d) < offset+3:
		break
	m = struct.unpack("I", d[offset:offset+4])[0]
	if m == magic:
		size = struct.unpack("I", d[size_offset:size_offset+4])[0]
		fsize = struct.unpack("I", d[fsize_offset:fsize_offset+4])[0]
		sblkno = struct.unpack("I", d[sblkno_offset:sblkno_offset+4])[0]
		interval = pos - last_magic
		psize = long(size) * fsize
		print "Superblock in %d blocks at %s bytes, interval %s bytes, size %s bytes" % (sblkno, pos, interval, psize)
		if interval == first_interval:
			b = (last_magic - magic_offset)
			bb = b / sector_size
			print "%s bytes (= %s blocks) must be the beginning of a partition" % (b, bb)
			label.append((psize/sector_size, bb))
			last_partition = bb
			last_magic = pos
			if do_seek:
				next_b = b + psize
				print "seek to", next_b
				fd.seek(next_b)
				pos = next_b + offset - block_size
		else:
			last_magic = pos
	pos = pos + block_size

print "%10s %10s" % ("size", "offset")
for i in label:
	print "%10d %10d" % i


/\ Hidetoshi Shimokawa
\/  simokawa@sat.t.u-tokyo.ac.jp
PGP public key: finger -l simokawa@sat.t.u-tokyo.ac.jp


