Magellan Linux

Diff of /trunk/mlivecdbuild/profiles/alx-0_7_branch/prepare_custom

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2663 by niro, Thu Jul 3 11:29:38 2014 UTC revision 2664 by niro, Wed Jul 9 07:22:35 2014 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2    
3    updateconfig()
4    {
5     local variables="$@"
6     local value
7     local i
8    
9     if [[ -z ${CONFIG} ]]
10     then
11     echo "You must define \$CONFIG varibale first!"
12     return 1
13     fi
14    
15     for i in ${variables}
16     do
17     value="$(eval echo \${NEW_${i}})"
18     if [[ ! -z $(grep "^${i}=" ${CONFIG}) ]]
19     then
20     echo "fixing ${i} -> ${value}"
21     sed -i "s|^\(${i}=\).*|\1\"${value}\"|" ${CONFIG}
22     else
23     echo "adding ${i}=${value}"
24     echo "${i}=\"${value}\"" >> ${CONFIG}
25     fi
26     done
27    }
28    
29    ##
30    # create the install tarball
31    ##
32    create_install_tarball()
33    {
34     install -d ${LIVECDROOT}/install-temp
35     install -d ${CDISOROOT}/system
36    
37     # use all settings from the global config, but the basesystem
38     # has to be the normal install basesystem not for livecds
39     mage-bootstrap \
40     --root ${LIVECDROOT}/install-temp \
41     --profile ${MAGE_PROFILE} \
42     --magerc ${MAGERC} \
43     --toolchain ${TOOLCHAIN} \
44     --update-tarball \
45     --basesystem basesystem || die "bootstrapping target system failed!"
46    
47     # set an empty root password for the install system too
48     chroot ${LIVECDROOT}/install-temp passwd -d root
49    
50     # add user station with empty password
51     chroot ${LIVECDROOT}/install-temp adduser -G users -h /home/station -s /bin/bash -D station
52    
53     # install xinitrc
54     echo 'exec startfluxbox' > ${LIVECDROOT}/install-temp/home/station/.xinitrc
55    
56     # fix hostname and hosts file
57     echo "alx-i486" > ${LIVECDROOT}/install-temp/etc/hostname
58     echo "127.0.0.1 localhost alx-i486.magellan-linux.de alx-i486" > ${LIVECDROOT}/install-temp/etc/hosts
59     cat >> ${LIVECDROOT}/install-temp/etc/hosts << EOF
60    ::1             ip6-localhost   ip6-loopback
61    fe00::0         ip6-localnet
62    ff00::0         ip6-mcastprefix
63    ff02::1         ip6-allnodes
64    ff02::2         ip6-allrouters
65    ff02::3         ip6-allhosts
66    EOF
67    
68     # create a default network interface config file
69     cat > ${LIVECDROOT}/install-temp/etc/conf.d/net.eth0 << EOF
70    ONBOOT="yes"
71    NETWORKING="dhcp"
72    EOF
73    
74     # fix mage.rc and config.rc
75     NEW_SQL_USER="alx_install"
76     NEW_SQL_PASS="@lx"
77     NEW_SQL_HOST="128.20.41.110"
78     NEW_SQL_DB="alx_web"
79     NEW_SMB_UPDATE_HOST="//${NEW_SQL_HOST}/magetmp"
80     NEW_SMB_UPDATE_USER="${NEW_SQL_USER}"
81     NEW_SMB_UPDATE_PASS="${NEW_SQL_PASS}"
82     NEW_MAGE_MIRRORS="http://${NEW_SQL_HOST}/magellan/alx-070"
83     NEW_MAGE_RSYNC="rsync://${NEW_SQL_HOST}/mage-alx-070"
84     NEW_RSYNC="${NEW_MAGE_RSYNC}"
85     NEW_SMAGE2RSYNC="rsync://${NEW_SQL_HOST}/smage-alx-070"
86     NEW_MIRRORS="${NEW_MAGE_MIRRORS}"
87     NEW_MAGE_UNINSTALL_TIMEOUT="0"
88     CONFIG="${LIVECDROOT}/install-temp/etc/mage.rc"
89     updateconfig RSYNC SMAGE2RSYNC MIRRORS MAGE_UNINSTALL_TIMEOUT
90     CONFIG="${LIVECDROOT}/install-temp/etc/alxconfig-ng/config.rc"
91     updateconfig SQL_USER SQL_PASS SQL_HOST SQL_DB SMB_UPDATE_HOST SMB_UPDATE_USER SMB_UPDATE_PASS MAGE_MIRRORS MAGE_RSYNC
92    
93     # create tarball
94     [[ -f ${CDISOROOT}/system/alx-i486.tar.bz2 ]] && rm ${CDISOROOT}/system/alx-i486.tar.bz2
95     ( cd ${LIVECDROOT}/install-temp; tar cvjpf ${CDISOROOT}/system/alx-i486.tar.bz2 ./ | tee log)
96    
97     # create images.conf
98     echo "CDIMAGENAME=alx-i486.tar.bz2" > ${CDISOROOT}/system/images.conf
99     echo "TOTALLINES=$(wc -l ${LIVECDROOT}/install-temp/log | cut -d' ' -f1)" >> ${CDISOROOT}/system/images.conf
100    
101     create_netboot_image
102    
103     # clean up
104     if [[ -d ${LIVECDROOT}/install-temp ]]
105     then
106     rm -rf ${LIVECDROOT}/install-temp
107     fi
108    }
109    
110    ##
111    # create the network image
112    ##
113    create_netboot_image()
114    {
115     install -d ${CDISOROOT}/netboot
116     install -d ${LIVECDROOT}/network-temp
117    
118     install -d ${LIVECDROOT}/network-temp/{LiveOS,mnt} || die
119    
120     # get the actual size of the chroot
121     size=$(du -s ${LIVECDROOT}/install-temp | sed 's:^\(.*\)[[:space:]].*:\1:')
122    
123     # generate a ext3fs file for devicemapper
124     dd if=/dev/zero of=${LIVECDROOT}/network-temp/LiveOS/ext3fs.img bs=1024 count=$(( ${size} + 10 )) || die
125     # create a filesystem
126     mkfs.ext3 -L "_${CDID}_EXT3" -m 1 -b 1024 -F ${LIVECDROOT}/network-temp/LiveOS/ext3fs.img || die
127     # set mount_counts and check_intervals to 0
128     # set dir_index top, to speed up thing with hashed b-trees
129     # allow acls too
130     tune2fs -c0 -i0 -Odir_index -ouser_xattr,acl ${LIVECDROOT}/network-temp/LiveOS/ext3fs.img || die
131    
132     # losetup the device
133     loopdev=$(losetup -f)
134     [[ -z ${loopdev} ]] && die "No unused loopdev found. Maybe you want 'modprobe loop'?"
135    
136     # mount the image
137     losetup ${loopdev} ${LIVECDROOT}/network-temp/LiveOS/ext3fs.img || die
138     mount ${loopdev} ${LIVECDROOT}/network-temp/mnt || die
139    
140     # copy everything to the image file and preserve permissions
141     ( cd ${LIVECDROOT}/install-temp && tar cpf - . ) | ( cd ${LIVECDROOT}/network-temp/mnt && tar xvpf - )
142     sleep 3
143    
144     # now umount everything and create the squashfs image
145     umount ${LIVECDROOT}/network-temp/mnt || die
146     losetup -d ${loopdev} || die
147     # remove mount to not ending up in the squashfs image
148     if [[ -d ${LIVECDROOT}/network-temp/mnt ]]
149     then
150     rm -r ${LIVECDROOT}/network-temp/mnt || die
151     fi
152     mksquashfs ${LIVECDROOT}/network-temp ${CDISOROOT}/netboot/squashfs.img || die
153    
154     # copy kernel and create initramfs to isoroot/netboot
155     install -d ${CDISOROOT}/netboot || die
156     # kernel
157     kimg="$(find ${CDCHROOTDIR}/boot -name kernel-\* -printf '%f\n')"
158     install ${CDCHROOTDIR}/boot/${kimg} ${CDISOROOT}/netboot/${CDKERNELNAME} || die
159     # initrd
160     install -d ${CDCHROOTDIR}/etc/dracut.conf.d || die
161     echo 'add_dracutmodules+=" livenet busybox"' > ${CDCHROOTDIR}/etc/dracut.conf.d/03-netboot.conf || die
162     echo 'omit_dracutmodules+=" systemd plymouth mcored"' >> ${CDCHROOTDIR}/etc/dracut.conf.d/03-netboot.conf || die
163     # install dracut-dev package to have all modules
164     custom_packages install dracut-dev curl curl-dev || die
165     ## mlivecdbuild function
166     generate_initrd
167     mv ${CDISOROOT}/isolinux/initrd.gz ${CDISOROOT}/netboot/ || die
168     custom_packages uninstall dracut-dev curl curl-dev || die
169     if [ -e ${CDCHROOTDIR}/etc/dracut.conf.d/03-netboot.conf ]
170     then
171     rm ${CDCHROOTDIR}/etc/dracut.conf.d/03-netboot.conf
172     fi
173    
174     # final cleanup
175     if [[ -d ${LIVECDROOT}/network-temp ]]
176     then
177     rm -r ${LIVECDROOT}/network-temp || die
178     fi
179    }
180    
181  # set an empty root password  # set an empty root password
182  chroot ${CDCHROOTDIR} passwd -d root  chroot ${CDCHROOTDIR} passwd -d root
183    
# Line 36  then Line 214  then
214  fi  fi
215    
216  # stop here if the user don't want to create the install tarball  # stop here if the user don't want to create the install tarball
217  [[ ! -z ${SKIP_CREATE_INSTALL_TARBALL} ]] && exit 0  [[ -n ${SKIP_CREATE_INSTALL_TARBALL} ]] || create_install_tarball
   
   
 ##  
 # create the install tarball  
 ##  
   
 install -d ${LIVECDROOT}/install-temp  
 install -d ${CDISOROOT}/system  
   
 # use all settings from the global config, but the basesystem  
 # has to be the normal install basesystem not for livecds  
 mage-bootstrap \  
  --root ${LIVECDROOT}/install-temp \  
  --profile ${MAGE_PROFILE} \  
  --magerc ${MAGERC} \  
  --toolchain ${TOOLCHAIN} \  
  --update-tarball \  
  --basesystem basesystem || die "bootstrapping target system failed!"  
   
 # set an empty root password for the install system too  
 chroot ${LIVECDROOT}/install-temp passwd -d root  
   
 # add user station with empty password  
 chroot ${LIVECDROOT}/install-temp adduser -G users -h /home/station -s /bin/bash -D station  
   
 # install xinitrc  
 echo 'exec startfluxbox' > ${LIVECDROOT}/install-temp/home/station/.xinitrc  
   
 # fix hostname and hosts file  
 echo "alx-i486" > ${LIVECDROOT}/install-temp/etc/hostname  
 echo "127.0.0.1 localhost alx-i486.magellan-linux.de alx-i486" > ${LIVECDROOT}/install-temp/etc/hosts  
 cat >> ${LIVECDROOT}/install-temp/etc/hosts << EOF  
 ::1             ip6-localhost   ip6-loopback  
 fe00::0         ip6-localnet  
 ff00::0         ip6-mcastprefix  
 ff02::1         ip6-allnodes  
 ff02::2         ip6-allrouters  
 ff02::3         ip6-allhosts  
 EOF  
   
 # create a default network interface config file  
 cat > ${LIVECDROOT}/install-temp/etc/conf.d/net.eth0 << EOF  
 ONBOOT="yes"  
 NETWORKING="dhcp"  
 EOF  
   
 # fix mage.rc and config.rc  
 updateconfig()  
 {  
  local variables="$@"  
  local value  
  local i  
   
  if [[ -z ${CONFIG} ]]  
  then  
  echo "You must define \$CONFIG varibale first!"  
  return 1  
  fi  
   
  for i in ${variables}  
  do  
  value="$(eval echo \${NEW_${i}})"  
  if [[ ! -z $(grep "^${i}=" ${CONFIG}) ]]  
  then  
  echo "fixing ${i} -> ${value}"  
  sed -i "s|^\(${i}=\).*|\1\"${value}\"|" ${CONFIG}  
  else  
  echo "adding ${i}=${value}"  
  echo "${i}=\"${value}\"" >> ${CONFIG}  
  fi  
  done  
 }  
 NEW_SQL_USER="alx_install"  
 NEW_SQL_PASS="@lx"  
 NEW_SQL_HOST="128.20.41.110"  
 NEW_SQL_DB="alx_web"  
 NEW_SMB_UPDATE_HOST="//${NEW_SQL_HOST}/magetmp"  
 NEW_SMB_UPDATE_USER="${NEW_SQL_USER}"  
 NEW_SMB_UPDATE_PASS="${NEW_SQL_PASS}"  
 NEW_MAGE_MIRRORS="http://${NEW_SQL_HOST}/magellan/alx-070"  
 NEW_MAGE_RSYNC="rsync://${NEW_SQL_HOST}/mage-alx-070"  
 NEW_RSYNC="${NEW_MAGE_RSYNC}"  
 NEW_SMAGE2RSYNC="rsync://${NEW_SQL_HOST}/smage-alx-070"  
 NEW_MIRRORS="${NEW_MAGE_MIRRORS}"  
 NEW_MAGE_UNINSTALL_TIMEOUT="0"  
 CONFIG="${LIVECDROOT}/install-temp/etc/mage.rc"  
 updateconfig RSYNC SMAGE2RSYNC MIRRORS MAGE_UNINSTALL_TIMEOUT  
 CONFIG="${LIVECDROOT}/install-temp/etc/alxconfig-ng/config.rc"  
 updateconfig SQL_USER SQL_PASS SQL_HOST SQL_DB SMB_UPDATE_HOST SMB_UPDATE_USER SMB_UPDATE_PASS MAGE_MIRRORS MAGE_RSYNC  
   
 # create tarball  
 [[ -f ${CDISOROOT}/system/alx-i486.tar.bz2 ]] && rm ${CDISOROOT}/system/alx-i486.tar.bz2  
 ( cd ${LIVECDROOT}/install-temp; tar cvjpf ${CDISOROOT}/system/alx-i486.tar.bz2 ./ | tee log)  
   
 # create images.conf  
 echo "CDIMAGENAME=alx-i486.tar.bz2" > ${CDISOROOT}/system/images.conf  
 echo "TOTALLINES=$(wc -l ${LIVECDROOT}/install-temp/log | cut -d' ' -f1)" >> ${CDISOROOT}/system/images.conf  
   
 # clean up  
 if [[ -d ${LIVECDROOT}/install-temp ]]  
 then  
  rm -rf ${LIVECDROOT}/install-temp  
 fi  
218    
219  # install usb-install script  # install usb-install script
220  [ ! -d ${CDISOROOT}/usb-install ] && mkdir ${CDISOROOT}/usb-install  [ ! -d ${CDISOROOT}/usb-install ] && mkdir ${CDISOROOT}/usb-install

Legend:
Removed from v.2663  
changed lines
  Added in v.2664