Contents of /mage/tags/alx-0_6_5/include/alx.minc
Parent Directory | Revision Log
Revision 4842 -
(show annotations)
(download)
Mon May 13 11:54:20 2013 UTC (11 years, 4 months ago) by niro
File size: 3834 byte(s)
Mon May 13 11:54:20 2013 UTC (11 years, 4 months ago) by niro
File size: 3834 byte(s)
tagged 'alx-0_6_5'
1 | # alx specific functions |
2 | |
3 | add_conf_prot() |
4 | { |
5 | local i |
6 | |
7 | for i in $@ |
8 | do |
9 | export CONFIG_PROTECT="${CONFIG_PROTECT} ${i}" |
10 | done |
11 | } |
12 | |
13 | add_conf_prot_mask() |
14 | { |
15 | local i |
16 | |
17 | for i in $@ |
18 | do |
19 | export CONFIG_PROTECT_MASK="${CONFIG_PROTECT_MASK} ${i}" |
20 | done |
21 | } |
22 | |
23 | add_conf_prot_ignore() |
24 | { |
25 | local i |
26 | |
27 | for i in $@ |
28 | do |
29 | export CONFIG_PROTECT_IGNORE="${CONFIG_PROTECT_IGNORE} ${i}" |
30 | done |
31 | } |
32 | |
33 | # updates /boot/grub/grub.conf with given params |
34 | # example: alx_grub_update kernel-image-name description |
35 | alx_grub_update() |
36 | { |
37 | local KERNEL_IMAGE |
38 | local KERNEL_DESCRIPTION |
39 | local i |
40 | local rootfs |
41 | local grubroot |
42 | local grubopts |
43 | local OLD_IFS |
44 | local grubconf="/boot/grub/grub.conf" |
45 | local grub2conf="/boot/grub/grub.cfg" |
46 | local pass |
47 | |
48 | KERNEL_IMAGE="$1" |
49 | KERNEL_DESCRIPTION="$2" |
50 | |
51 | # some checks |
52 | if [ -z "${KERNEL_IMAGE}" ] |
53 | then |
54 | echo "At least a kernel-image must be given" |
55 | return 1 |
56 | fi |
57 | |
58 | [ -z "${KERNEL_DESCRIPTION}" ] && KERNEL_DESCRIPTION="${KERNEL_IMAGE}" |
59 | |
60 | # grub2 |
61 | if [[ -x /sbin/grub-mkconfig ]] |
62 | then |
63 | # create a device.map |
64 | if [[ ! -f /boot/grub/device.map ]] |
65 | then |
66 | grub-mkdevicemap |
67 | fi |
68 | |
69 | # needed by grub-mkconfig on the first run |
70 | if [[ ! -f /boot/grub/video.lst ]] |
71 | then |
72 | install -m0644 /$(mlibdir)/grub/*/video.lst /boot/grub/video.lst |
73 | fi |
74 | |
75 | # update grub.cfg |
76 | LC_ALL=C grub-mkconfig -o ${grub2conf} |
77 | |
78 | # install bootloader to disk |
79 | #local bootpartition="$(df -h /boot |(read; awk '{print $1; exit}'))" |
80 | local bootdisk |
81 | bootdisk="$(grub-probe --target=drive /boot | sed 's:(\(.*\),.*):(\1):')" |
82 | |
83 | # Generate core.img, but don't let it be installed in boot sector |
84 | grub-install --no-floppy "${bootdisk}" |
85 | |
86 | # grub legacy |
87 | else |
88 | |
89 | if [ ! -f ${grubconf} ] |
90 | then |
91 | echo "${grubconf} not found" |
92 | return 1 |
93 | fi |
94 | |
95 | # first of all get the first rootfs instance |
96 | for i in $(< ${grubconf}) |
97 | do |
98 | rootfs="$(echo ${i} | grep root=)" |
99 | [[ -n ${rootfs} ]] && break |
100 | done |
101 | |
102 | # then get the grub-root |
103 | OLD_IFS="$IFS" |
104 | IFS=$'\n' |
105 | for i in $(< ${grubconf}) |
106 | do |
107 | grubroot="$(echo ${i} | grep 'root (' | cut -d' ' -f2)" |
108 | [[ -n ${grubroot} ]] && break |
109 | done |
110 | IFS="${OLD_IFS}" |
111 | |
112 | # check for special hardware |
113 | if [[ -x $(which hwinfo) ]] |
114 | then |
115 | # zotac devices |
116 | if [[ ! -z $(hwinfo --bios --storage | grep -i zotac) ]] |
117 | then |
118 | grubopts="rootdelay=8" |
119 | echo "Special device 'ZOTAC' detected!" |
120 | fi |
121 | fi |
122 | |
123 | # fix description |
124 | : > ${grubconf} |
125 | echo "default 0" >> ${grubconf} |
126 | echo "timeout 3" >> ${grubconf} |
127 | # using roots current password if one was set |
128 | pass="$(grep '^root:' /etc/shadow | cut -d: -f2)" |
129 | # or fallback to a default password |
130 | [[ -z ${pass} ]] && pass="$1$oc/rCMuc$ZodLQSj6N5zYIJtOBg.RT/" |
131 | echo "password --md5 ${pass}" >> ${grubconf} |
132 | echo >> ${grubconf} |
133 | echo "# normal boot" >> ${grubconf} |
134 | echo "title ${KERNEL_DESCRIPTION}" >> ${grubconf} |
135 | echo "root ${grubroot}" >> ${grubconf} |
136 | echo "kernel ${grubroot}/boot/${KERNEL_IMAGE} ${rootfs} quiet ${grubopts}" >> ${grubconf} |
137 | echo >> ${grubconf} |
138 | echo "# admin boots" >> ${grubconf} |
139 | echo "title ${KERNEL_DESCRIPTION} - Re-run hardware-detection" >> ${grubconf} |
140 | echo "lock" >> ${grubconf} |
141 | echo "root ${grubroot}" >> ${grubconf} |
142 | echo "kernel ${grubroot}/boot/${KERNEL_IMAGE} ${rootfs} quiet ${grubopts} hardware-auto-detection" >> ${grubconf} |
143 | echo >> ${grubconf} |
144 | echo "title ${KERNEL_DESCRIPTION} - Reset *all* local settings" >> ${grubconf} |
145 | echo "lock" >> ${grubconf} |
146 | echo "root ${grubroot}" >> ${grubconf} |
147 | echo "kernel ${grubroot}/boot/${KERNEL_IMAGE} ${rootfs} quiet ${grubopts} alx-reset-settings" >> ${grubconf} |
148 | fi |
149 | } |
150 | |
151 | ## compat |
152 | alx_grub_update_new() |
153 | { |
154 | echo -e "${COLYELLOW}alx_grub_update_new() is deprecated - please only use alx_grub_update() from now on${COLDEFAULT}" |
155 | alx_grub_update |
156 | echo -e "${COLYELLOW}alx_grub_update_new() is deprecated - please only use alx_grub_update() from now on${COLDEFAULT}" |
157 | } |