blob: 859c7a021a81cf2b902191e3160b666651beb301 (
plain)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
#! /bin/sh
assure_pacman ()
{
PACMAN=
[ -f /tmp/usr/bin/pacman ] && PACMAN=/tmp/usr/bin/pacman
[ -f /usr/bin/pacman ] && PACMAN=/usr/bin/pacman
if [ "$PACMAN" = "" ]; then
cd /tmp
if [ "$INSTMODE" = "ftp" ]; then
echo "Downloading pacman..."
wget $PKGARG/pacman*.pkg.tar.gz
if [ $? -gt 0 ]; then
echo "error: Download failed"
exit 1
fi
tar -xzf pacman*.pkg.tar.gz
elif [ "$INSTMODE" = "cd" ]; then
echo "Unpacking pacman..."
tar -xzf $PKGARG/pacman*.pkg.tar.gz
fi
fi
[ -f /tmp/usr/bin/pacman ] && PACMAN=/tmp/usr/bin/pacman
[ "$PACMAN" = "" ] && return 1
}
write_pacman_conf_ftp ()
{
if [ "$INSTMODE" = "ftp" ]; then
echo "[core]" >/tmp/pacman.conf
echo "Server = $PKGARG" >>/tmp/pacman.conf
mkdir -p $DESTDIR/var/cache/pacman/pkg /var/cache/pacman >/dev/null 2>&1
rm -f /var/cache/pacman/pkg >/dev/null 2>&1
ln -sf $DESTDIR/var/cache/pacman/pkg /var/cache/pacman/pkg >/dev/null 2>&1
fi
}
write_pacman_conf_cd ()
{
if [ "$INSTMODE" = "cd" ]; then
PKGFILE=/tmp/packages.txt
cp $PKGARG/packages.txt /tmp/packages.txt
if [ ! -f $PKGFILE ]; then
echo "error: Could not find package list: $PKGFILE"
return 1
fi
echo "[core]" >/tmp/pacman.conf
echo "Server = file://$PKGARG" >>/tmp/pacman.conf
mkdir -p $DESTDIR/var/cache/pacman/pkg /var/cache/pacman >/dev/null 2>&1
rm -f /var/cache/pacman/pkg >/dev/null 2>&1
ln -sf $PKGARG /var/cache/pacman/pkg >/dev/null 2>&1
PKGLIST=
# fix pacman list!
sed -i -e 's/-i686//g' -e 's/-x86_64//g' $PKGFILE
for i in $(cat $PKGFILE | grep 'base/' | cut -d/ -f2); do
nm=${i%-*-*}
PKGLIST="$PKGLIST $nm"
done
fi
}
what_is_this_for ()
{
! [ -d $DESTDIR/var/lib/pacman ] && mkdir -p $DESTDIR/var/lib/pacman
! [ -d /var/lib/pacman ] && mkdir -p /var/lib/pacman
# mount proc/sysfs first, so mkinitrd can use auto-detection if it wants
! [ -d $DESTDIR/proc ] && mkdir $DESTDIR/proc
! [ -d $DESTDIR/sys ] && mkdir $DESTDIR/sys
! [ -d $DESTDIR/dev ] && mkdir $DESTDIR/dev
mount -t proc none $DESTDIR/proc
mount -t sysfs none $DESTDIR/sys
mount -o bind /dev $DESTDIR/dev
if [ "$INSTMODE" = "cd" ]; then
$PACMAN -r $DESTDIR --config /tmp/pacman.conf -Sy $PKGLIST
fi
if [ "$INSTMODE" = "ftp" ]; then
$PACMAN -r $DESTDIR --config /tmp/pacman.conf -Sy base
fi
umount $DESTDIR/proc $DESTDIR/sys $DESTDIR/dev
if [ $? -gt 0 ]; then
echo
echo "Package installation FAILED."
echo
exit 1
fi
}
quickinst_finished ()
{
echo
echo "Package installation complete."
echo
echo "Please install a bootloader. Edit the appropriate config file for"
echo "your loader, and chroot into your system to install it into the"
echo "boot sector:"
echo " # mount -o bind /dev $DESTDIR/dev"
echo " # mount -t proc none $DESTDIR/proc"
echo " # mount -t sysfs none $DESTDIR/sys"
echo " # chroot $DESTDIR /bin/bash"
echo
echo "For GRUB:"
echo " # install-grub /dev/sda /dev/sdaX (replace with your boot partition)"
echo " (or install manually by invoking the GRUB shell)"
echo "HINT XFS FILESYSTEM:"
echo "If you have created xfs filesystems, freeze them before and unfreeze them after"
echo "installing grub (outside the chroot):"
echo "- freeze:"
echo " # xfs_freeze -f $DESTDIR/boot"
echo " # xfs_freeze -f $DESTDIR/"
echo "- unfreeze:"
echo " # xfs_freeze -u $DESTDIR/boot"
echo " # xfs_freeze -u $DESTDIR/"
echo
echo "For LILO:"
echo " # lilo"
echo
echo "Next step, initramfs setup:"
echo "Edit your /etc/mkinitcpio.conf and /etc/mkinitcpio.d/kernel26-fallback.conf"
echo "to fit your needs. After that run:"
echo "# mkinitcpio -p kernel26"
echo
echo "Then exit your chroot shell, edit $DESTDIR/etc/fstab and"
echo "$DESTDIR/etc/rc.conf, and reboot!"
echo
}
|