-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathformat-a-disk.sh.sparc
77 lines (66 loc) · 1.3 KB
/
format-a-disk.sh.sparc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/sh
#
# SPDX-License-Identifier: CDDL-1.0
#
# {{{ CDDL HEADER
#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source. A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
# }}}
#
# Copyright 2024 Peter Tribble
#
#
# given a drive, partitions it with a single large slice 0
#
TFILE=/tmp/prtvtoc-input.$$
OFILE=/tmp/prtvtoc-output.$$
case $# in
2)
# -B accepted but ignored for compatibility with x86
DISKDEV=$2
;;
1)
DISKDEV=$1
;;
*)
echo "Usage: $0 [-B] disk_device"
exit 1
;;
esac
case $DISKDEV in
/*)
printf ""
;;
*)
DISKDEV="/dev/rdsk/$DISKDEV"
;;
esac
case $DISKDEV in
*s2)
printf ""
;;
*)
DISKDEV="${DISKDEV}s2"
;;
esac
if [ ! -e "$DISKDEV" ]; then
echo "Error: unable to find disk device $DISKDEV"
exit 1
fi
/usr/sbin/prtvtoc "$DISKDEV" | /usr/bin/grep -v '^\*' > $TFILE
#
# copy slice 2 to slice 0
#
SIZE0=$(/usr/bin/awk '{ if ($1 == "2") print $5}' $TFILE)
echo "0 2 00 0 $SIZE0" > $OFILE
echo "2 5 00 0 $SIZE0" >> $OFILE
/usr/sbin/fmthard -s $OFILE "$DISKDEV"
/usr/bin/rm -f $TFILE $OFILE