|
1 Zuerst machen wir ein sparse Image für unsere später CF-Card |
|
2 und partitionieren dies. |
|
3 |
|
4 # dd of=<IMAGE> bs=1K count=0 seek=<BLOCKS of CF> |
|
5 # parted -a optimal -s -- <LOOP> mklabel msdos |
|
6 # parted -a optimal -s -- <LOOP> mkpart primary ext4 1 -1 |
|
7 |
|
8 Nun mappen wir uns ein paar Loop-Devices, damit wir erfolgreich |
|
9 ein Filesystem und den GRUB installieren können. (Nur der Offset |
|
10 der ersten Partition reicht nicht, denn wir müssten auch wissen, wie |
|
11 groß das FS werden soll, darum lassen wir kpartx für uns arbeiten.) |
|
12 |
|
13 # kpartx -av <IMAGE> |
|
14 # mkfs -text4 <LOOP0p1> |
|
15 # tune2fs -O ^has_journal <LOOP0p1> |
|
16 # e2label <LOOP0p1> <LABEL> |
|
17 |
|
18 Nun muß das FS gemountet werden, damit der Grub seine Files |
|
19 dort rein tun kann. |
|
20 |
|
21 {{ Es scheint einen Bug im Grub zu geben, der ihn hindert, von einem |
|
22 device-Mapper /dev/mapper/loop0p1 das Filesystem zu bestimmen. Man kann |
|
23 jetzt mal ein Block-Device mit der Major/Minor-Number von |
|
24 /dev/mapper/loop0p1 anlegen und dann funktioniert auch grub-install, |
|
25 oder wir machen noch ein weiteres Loop-Device, und mounten dieses}} |
|
26 |
|
27 # losetup -fv <LOOP0p1> |
|
28 # mount <LOOP2> <MNT> |
|
29 |
|
30 Aus irgendwelchen Gründen hat Grub nicht bemerkt, welcher Partitionstabellen- |
|
31 Typ das ist, also muss das Modul noch mit eingebettet werden: |
|
32 |
|
33 # grub-install --modules='part_msdos' --root-directory=<MNT> <LOOP> |
|
34 # Grub-Config einspielen <grub/grub.cfg> und anpassen! |
|
35 |
|
36 Zum Test kann das mit KVM probiert werden: |
|
37 |
|
38 # kvm -hda image |
|
39 |
|
40 Dann können wir „bootstrappen“: |
|
41 |
|
42 # http_proxy=http://localhost:3128/ debootstrap \ |
|
43 --arch i386 stable \ |
|
44 <MNT> http://ftp.de.debian.org/debian |
|
45 |
|
46 # chroot <MNT> |
|
47 # <MNT> > /etc/apt/apt.conf.d/10alix |
|
48 'APT::Install-Recommends "false";' |
|
49 |
|
50 # <MNT> > /etc/hostname |
|
51 alix |
|
52 |
|
53 [] vi /etc/default/rcS |
|
54 RAMRUN=yes |
|
55 RAMLOCK=yes |
|
56 RAMTMP=yes |
|
57 RAMSHM=yes |
|
58 |
|
59 # <MNT> rm /etc/mtab |
|
60 # <MNT> ln -s /proc/mounts /etc/mtab |
|
61 # <MNT> rm /etc/resolv.conf |
|
62 ln -s /var/run/resolv.conf /etc/ |
|
63 |
|
64 # <MNT> >> /etc/fstab |
|
65 /dev/disk/by-label/<LABEL> / ext4 defaults,ro,relatime 0 0 |
|
66 tmp /tmp tmpfs defaults 0 0 |
|
67 log /var/log tmpfs defaults 0 0 |
|
68 /var/run /var/lib/urandom auto bind,defaults 0 0 |
|
69 /var/run /var/lib/logrotate auo bind,defaults 0 0 |
|
70 |
|
71 |
|
72 [] etc/inittab anpassen: |
|
73 - serielle Konsole eintragen |
|
74 - eine normale lassen (für Simulation in kvm) |
|
75 |
|
76 # <MNT> > /etc/udev/rules.d/70-persistent-net.rules |
|
77 |
|
78 [] etc/network/interfaces <etc/network/interfaces> |
|
79 [] etc/udev/rules.d/70-alix.rules <etc/udev/rules.d/10-alix.rules> |
|
80 |
|
81 # passwd root |
|
82 # aptitude update |
|
83 # aptitude purge isc-dhcp-client |
|
84 # aptitude install linux-image-686 openssh-server udhcpc ifplugd vim busybox-syslogd ferm |
|
85 # aptitude install chrony |
|
86 |
|
87 # <MNT> vi /etc/default/ifplugd |
|
88 [] vi etc/logrotate.conf |
|
89 [] vi etc/logrotate.d/* |
|
90 |
|
91 # root/.bashrc <root/.bashrc> |
|
92 |
|
93 [] vi etc/environment |
|
94 export BLKID_FILE=/run/blkid.tab |
|
95 |
|
96 # <MNT> dpkg-reconfigure tzdata |
|
97 |
|
98 [] vi etc/default/apache2 |
|
99 mkdir /var/log/apache2 |
|
100 |
|
101 ferm ohne cache (/etc/default/ferm) |