Lines 120-149
Link Here
|
120 |
newdoc docs/menu.lst grub.conf.sample |
120 |
newdoc docs/menu.lst grub.conf.sample |
121 |
} |
121 |
} |
122 |
|
122 |
|
123 |
pkg_postinst() { |
123 |
setup_boot_dir() { |
124 |
[[ ${ROOT} != "/" ]] && return 0 |
124 |
local dir="${1}" |
|
|
125 |
|
126 |
[[ ! -e "${dir}" ]] && die "${dir} does not exist!" |
127 |
|
128 |
[[ ! -e "${dir}/grub" ]] && mkdir "${dir}/grub" |
125 |
|
129 |
|
126 |
# change menu.lst to grub.conf |
130 |
# change menu.lst to grub.conf |
127 |
if [[ ! -e /boot/grub/grub.conf && -e /boot/grub/menu.lst ]] ; then |
131 |
if [[ ! -e "${dir}/grub/grub.conf" && -e "${dir}/grub/menu.lst" ]] ; then |
128 |
mv -f /boot/grub/menu.lst /boot/grub/grub.conf |
132 |
mv -f "${dir}/grub/menu.lst ${dir}/grub/grub.conf" |
129 |
ewarn |
133 |
ewarn |
130 |
ewarn "*** IMPORTANT NOTE: menu.lst has been renamed to grub.conf" |
134 |
ewarn "*** IMPORTANT NOTE: menu.lst has been renamed to grub.conf" |
131 |
ewarn |
135 |
ewarn |
132 |
fi |
136 |
fi |
|
|
137 |
|
138 |
if [[ ! -e "${dir}"/grub/menu.lst ]]; then |
133 |
einfo "Linking from new grub.conf name to menu.lst" |
139 |
einfo "Linking from new grub.conf name to menu.lst" |
134 |
[[ ! -e /boot/grub/menu.lst ]] && ln -snf grub.conf /boot/grub/menu.lst |
140 |
ln -snf grub.conf "${dir}/grub/menu.lst" |
|
|
141 |
fi |
135 |
|
142 |
|
136 |
[[ -e /boot/grub/stage2 ]] && mv /boot/grub/stage2{,.old} |
143 |
[[ -e "${dir}"/grub/stage2 ]] && mv "${dir}"/grub/stage2{,.old} |
137 |
|
144 |
|
138 |
einfo "Copying files from /lib/grub and /usr/lib/grub to /boot" |
145 |
einfo "Copying files from /lib/grub and /usr/lib/grub to "${dir}"" |
139 |
for x in /lib*/grub/*/* /usr/lib*/grub/*/* ; do |
146 |
for x in /lib*/grub/*/* /usr/lib*/grub/*/* ; do |
140 |
[[ -f ${x} ]] && cp -p ${x} /boot/grub/ |
147 |
[[ -f ${x} ]] && cp -p ${x} "${dir}"/grub/ |
141 |
done |
148 |
done |
142 |
|
149 |
|
143 |
if [[ -e /boot/grub/grub.conf ]] ; then |
150 |
if [[ -e "${dir}"/grub/grub.conf ]] ; then |
144 |
egrep -v '^[[:space:]]*(#|$|default|fallback|splashimage|timeout|title)' /boot/grub/grub.conf | \ |
151 |
egrep -v '^[[:space:]]*(#|$|default|fallback|splashimage|timeout|title)' "${dir}"/grub/grub.conf | \ |
145 |
/sbin/grub --batch \ |
152 |
/sbin/grub --batch \ |
146 |
--device-map=/boot/grub/device.map \ |
153 |
--device-map="${dir}"/grub/device.map \ |
147 |
> /dev/null |
154 |
> /dev/null |
148 |
fi |
155 |
fi |
149 |
} |
156 |
} |
|
|
157 |
|
158 |
pkg_postinst() { |
159 |
[[ ${ROOT} != "/" ]] && return 0 |
160 |
setup_boot_dir /boot |
161 |
einfo "To install grub files to for example an usb stick you can use:" |
162 |
einfo "emerge --config =${P}" |
163 |
} |
164 |
|
165 |
pkg_config() { |
166 |
local dir |
167 |
einfo "Enter the directory where you want to setup grub:" |
168 |
read dir |
169 |
setup_boot_dir ${dir} |
170 |
} |