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