source: MondoRescue/branches/stable/contrib/mkcd/cuckoo-stuff@ 355

Last change on this file since 355 was 355, checked in by bcornec, 18 years ago

Adds everything related to mondo cd creation

  • Property svn:executable set to *
File size: 2.2 KB
Line 
1#!/bin/sh
2
3
4ListAllFdiskEntries() {
5 for i in hd sd ; do
6 for j in a b c d e f g h i j k l m n o p ; do
7 drive=/dev/$i$j
8 fdisk -l $drive | grep "/dev/hda" | grep -v "$drive: " | grep -v "Extended" | sed s/\*// | sed s/+//
9 done
10 done
11}
12
13
14GetPartitionString() {
15 case "$1" in
16 ("1")
17 echo "vfat"
18 ;;
19 ("4")
20 echo "vfat"
21 ;;
22 ("6")
23 echo "vfat"
24 ;;
25 ("b")
26 echo "vfat"
27 ;;
28 ("c")
29 echo "vfat"
30 ;;
31 ("d")
32 echo "vfat"
33 ;;
34 ("e")
35 echo "vfat"
36 ;;
37 ("f")
38 echo "vfat"
39 ;;
40 ("82")
41 echo "swap"
42 ;;
43 ("83")
44 echo "auto" ; # xfs, jfs, ext2, ext3, reiserfs, ...
45 ;;
46 esac
47}
48
49
50
51MakeFakeMountlist() {
52 local line dev size type mountpt
53 for line in `ListAllFdiskEntries | tr -s ' ' '|'` ; do
54 dev=`echo "$line" | cut -d'|' -f1`
55 size=`echo "$line" | cut -d'|' -f4`
56 type=`echo "$line" | cut -d'|' -f5`
57 type=`GetPartitionString $type`
58 if [ "$type" = "swap" ] ; then
59 mountpt=swap
60 else
61 mountpt=/cuckoo/`basename $dev`
62 fi
63 echo -e "$dev\t$mountpt\t$type\t$size"
64 done
65}
66
67
68
69
70
71
72
73MountEverything() {
74 local line dev mountpt format
75 for line in `MakeFakeMountlist | tr -s '\t' ' ' | tr -s ' ' '|'` ; do
76 dev=`echo "$line" | cut -d'|' -f1`
77 mountpt=`echo "$line" | cut -d'|' -f2`
78 format=`echo "$line" | cut -d'|' -f3`
79 if [ "$format" = "swap" ] ; then
80 swapon $dev
81 else
82 mkdir -p $mountpt
83 mount $dev -o ro -t $format $mountpt > /dev/null 2> /dev/null
84 [ "$?" -ne "0" ] && echo "Failed to mount $dev"
85 fi
86 done
87}
88
89
90
91
92
93
94UnmountEverything() {
95 local line dev mountpt format
96 for line in `MakeFakeMountlist | tr -s '\t' ' ' | tr -s ' ' '|'` ; do
97 dev=`echo "$line" | cut -d'|' -f1`
98 mountpt=`echo "$line" | cut -d'|' -f2`
99 format=`echo "$line" | cut -d'|' -f3`
100 if [ "$format" = "swap" ] ; then
101 swapoff $dev
102 else
103 umount $dev
104 fi
105 done
106}
107
108
109
110# ------------------------- main -------------------------
111
112
113
114MakeFakeMountlist > /tmp/mountlist.hacked
115MountEverything
116echo -en "Press ENTER." ; read line
117UnmountEverything
118exit 0
119
Note: See TracBrowser for help on using the repository browser.