xref: /plan9/rc/bin/pc/bootwinnt (revision 223a736ebd2849388a6a0145cd1e22a96bd28460)
1*223a736eSDavid du Colombier#!/bin/rc
2*223a736eSDavid du Colombier
3*223a736eSDavid du Colombierdisk=`{ls /dev/sd??/plan9 >[2]/dev/null | sed 1q | sed 's!.*/(.*)/plan9!\1!'}
4*223a736eSDavid du Colombierif(! ~ $#disk 1) {
5*223a736eSDavid du Colombier	echo 'No plan 9 disk found' >[1=2]
6*223a736eSDavid du Colombier	exit
7*223a736eSDavid du Colombier}
8*223a736eSDavid du Colombier
9*223a736eSDavid du Colombierif(! c: || ! test -f /n/c:/boot.ini) {
10*223a736eSDavid du Colombier	echo 'Could not find NT''s boot.ini on the first FAT disk.' >[1=2]
11*223a736eSDavid du Colombier	exit
12*223a736eSDavid du Colombier}
13*223a736eSDavid du Colombier
14*223a736eSDavid du Colombierif(test -f /n/c:/boot.p9) {
15*223a736eSDavid du Colombier	echo 'A Plan 9 backup already exists; will not edit boot.ini again.' >[1=2]
16*223a736eSDavid du Colombier	exit
17*223a736eSDavid du Colombier}
18*223a736eSDavid du Colombier
19*223a736eSDavid du Colombierif(! cp /n/c:/boot.ini /n/c:/boot.p9) {
20*223a736eSDavid du Colombier	echo 'Could not back up boot.ini; will not continue.' >[1=2]
21*223a736eSDavid du Colombier	exit
22*223a736eSDavid du Colombier}
23*223a736eSDavid du Colombier
24*223a736eSDavid du Colombierchmod +w /n/c:/boot.ini
25*223a736eSDavid du Colombier
26*223a736eSDavid du Colombierif(! grep -si '\[operating systems\]' /n/c:/boot.ini) {
27*223a736eSDavid du Colombier	echo 'Could not parse boot.ini.' >[1=2]
28*223a736eSDavid du Colombier	exit
29*223a736eSDavid du Colombier}
30*223a736eSDavid du Colombier
31*223a736eSDavid du Colombierif(grep -si 'Plan 9' /n/c:/boot.ini) {
32*223a736eSDavid du Colombier	p9file=`{grep 'Plan 9' /n/c:/boot.ini | sed 1q | sed 's/=.*//'}
33*223a736eSDavid du Colombier	if(! ~ $p9file [Cc]:'\'*) {
34*223a736eSDavid du Colombier		echo 'Unexpected Plan 9 entry in boot.ini already; not continuing.' >[1=2]
35*223a736eSDavid du Colombier		exit
36*223a736eSDavid du Colombier	}
37*223a736eSDavid du Colombier}
38*223a736eSDavid du Colombier
39*223a736eSDavid du Colombierif not {
40*223a736eSDavid du Colombier	p9file='c:\bootsect.p9'
41*223a736eSDavid du Colombier	echo 'c:\bootsect.p9 = "Plan 9 from Bell Labs"
42*223a736eSDavid du Colombier' >>/n/c:/boot.ini
43*223a736eSDavid du Colombier}
44*223a736eSDavid du Colombier
45*223a736eSDavid du Colombierp9file=/n/^`{echo $p9file | sed 's!\\!/!g'}
46*223a736eSDavid du Colombier
47*223a736eSDavid du Colombier
48*223a736eSDavid du Colombierif(dd -if /dev/$disk/plan9 -bs 512 -count 1 -of $p9file >/dev/null >[2]/dev/null) {
49*223a736eSDavid du Colombier	echo 'Plan 9 added to Windows NT boot menu.' >[1=2]
50*223a736eSDavid du Colombier	exit
51*223a736eSDavid du Colombier}
52*223a736eSDavid du Colombier
53*223a736eSDavid du Colombierecho 'Error copying Plan 9 boot sector to file.'
54exit
55