Table of Contents
Boot-scripts (source, 20150429)
The scripts in their present state are available at the GIT-repository.
'init' (on initrd)
1 #!/bb/ash 2 /bb/mount proc 3 /bb/grep -qw multivt /proc/cmdline && /bb/sed -i s/^#tty/tty/ /etc/inittab 4 if ! /bb/grep -qw noembed /proc/cmdline; then 5 /bb/mount / -o remount,size=90% 6 /bb/umount proc 7 exec /bb/init 8 fi 9 /bb/umount proc 10 if /bb/mount -t tmpfs -o size=90% tmpfs /mnt; then 11 if /bb/tar -C / --exclude=mnt -cf - . | /bb/tar -C /mnt/ -xf - ; then 12 /bb/mkdir /mnt/mnt 13 exec /bb/switch_root mnt /bb/init 14 fi 15 fi 16 exec /bb/init
'/etc/inittab'
1 # /etc/inittab: init configuration for busybox init. 2 # Boot-time system configuration/initialization script. 3 # 4 ::sysinit:/etc/init.d/rcS 5 6 # /bb/getty respawn shell invocations for selected ttys. 7 tty1::respawn:/bb/getty -nl /sbin/autologin 38400 tty1 8 #tty2::respawn:/bb/getty 38400 tty2 9 #tty3::respawn:/bb/getty 38400 tty3 10 #tty4::askfirst:/bb/getty 38400 tty4 11 #tty5::askfirst:/bb/getty 38400 tty5 12 #tty6::askfirst:/bb/getty 38400 tty6 13 14 # Stuff to do when restarting the init 15 # process, or before rebooting. 16 ::restart:/etc/init.d/rc.shutdown 17 ::restart:/bb/init 18 ::ctrlaltdel:/bb/reboot 19 ::shutdown:/etc/init.d/rc.shutdown
'/etc/init.d/rcS'
1 #!/bb/ash 2 # RC Script for Tiny Core Linux 3 # (c) Robert Shingledecker 2004-2012 4 5 # Mount /proc. 6 [ -f /proc/cmdline ] || /bb/mount /proc 7 8 # Remount rootfs rw. 9 /bb/mount -o remount,rw / 10 11 # Mount system devices from /etc/fstab. 12 /bb/mount -a 13 14 /etc/init.d/tc-config
'/etc/init.d/tc-config'
1 #!/bb/ash 2 # RC Script for Tiny Core Linux 3 # (c) Robert Shingledecker 2004-2012 4 # Several modifications for speed by Curaga 5 . /etc/init.d/tc-functions 6 7 PATH="/bb:/bin:/sbin:/usr/bin:/usr/sbin" 8 export PATH 9 USER="tc" 10 TCEDIR="/tmp/tce" 11 TCLOOP="/tmp/tcloop" 12 TCEINSTALLED="/usr/local/tce.installed" 13 INSTALLED="" 14 VERSION="$(cat /usr/share/doc/tc/release.txt)" 15 KERNEL="$(uname -r)" 16 17 addUser(){ 18 echo "${GREEN}Adding user ${YELLOW} $USER ${NORMAL}" 19 /bb/adduser -s /bb/sh -G staff -D "$USER" 20 echo "$USER":tcuser | /bb/chpasswd -m 21 echo -e "$USER\tALL=NOPASSWD: ALL" >> /etc/sudoers 22 } 23 24 ### END functions 25 26 # Main 27 clear 28 echo "${GREEN}Booting ${YELLOW}dCore $VERSION ${NORMAL}" 29 echo "${GREEN}Running Linux Kernel ${YELLOW}$KERNEL${GREEN}.${NORMAL}" 30 export PATH=/usr/local/sbin:/usr/local/bin:"$PATH" 31 32 # Here we check all the boot parameters using the fastest way known to men, case & loop 33 echo -n "${BLUE}Checking boot options...${NORMAL}" 34 for i in `cat /proc/cmdline`; do 35 case $i in 36 *=*) 37 case $i in 38 waitusb*) WAITUSB=${i#*=} ;; 39 lang*) LANGUAGE=${i#*=} ;; 40 kmap*) KEYMAP=${i#*=} ;; 41 tz*) TZ=${i#*=} ;; 42 desktop*) DESKTOP=${i#*=} ;; 43 icons*) ICONS=${i#*=} ;; 44 noicons*) NOICONS=${i#*=} ;; 45 user*) USER=${i#*=} ;; 46 home*) MYHOME=${i#*=} ;; 47 tcvd*) TCVD=${i#*=} ;; 48 opt*) MYOPT=${i#*=} ;; 49 swapfile*) SWAPFILE=${i#*=} ;; 50 resume*) RESUME=${i#*=} ;; 51 host*) HOST=1 ;; 52 nfsmount* ) NFSMOUNT=${i#*=} ;; 53 tftplist* ) TFTPLIST=${i#*=} ;; 54 httplist* ) HTTPLIST=${i#*=} ;; 55 aoe* ) AOE=${i#*=} ;; 56 nbd* ) NBD=${i#*=} ;; 57 mydata* ) MYDATA=${i#*=} ;; 58 pretce* ) PRETCE=${i#*=} ;; 59 xvesa* ) XVESA=${i#*=} ;; 60 rsyslog=* ) RSYSLOG=${i#*=}; SYSLOG=1 ;; 61 blacklist* ) BLACKLIST="$BLACKLIST ${i#*=}" ;; 62 iso* ) ISOFILE=${i#*=} ;; 63 esac 64 ;; 65 *) 66 case $i in 67 checkfs) CHECKFS=1 ;; 68 nozswap) NOZSWAP=1 ;; 69 nofstab) NOFSTAB=1 ;; 70 nortc) NORTC=1 ;; 71 syslog) SYSLOG=1 ;; 72 noutc) NOUTC=1 ;; 73 nodhcp) NODHCP=1 ;; 74 noicons) NOICONS=1 ;; 75 text) TEXT=1 ;; 76 xonly) XONLY=1 ;; 77 superuser) SUPERUSER=1 ;; 78 noswap) NOSWAP=1 ;; 79 secure) SECURE=1 ;; 80 protect) PROTECT=1 ;; 81 cron) CRON=1 ;; 82 xsetup) XSETUP=1 ;; 83 laptop) LAPTOP=1 ;; 84 base) ONLYBASE=1 ;; 85 showapps) SHOWAPPS=1 ;; 86 norestore) NORESTORE=1 ;; 87 noautologin) NOAUTOLOGIN=1 ;; 88 pause) PAUSE=1 ;; 89 esac 90 ;; 91 esac 92 done 93 echo "${GREEN}Done.${NORMAL}" 94 95 if [ -n "$BLACKLIST" ]; then 96 mkdir -p /etc/modprobe.d 97 for i in $BLACKLIST; do 98 echo "$i" | tr ',' '\n' | while read j ; do 99 echo "blacklist $j" >> /etc/modprobe.d/blacklist.conf 100 done 101 done 102 fi 103 104 # Start Udev to populate /dev and handle hotplug events 105 echo -n "${BLUE}Starting udev daemon for hotplug support...${NORMAL}" 106 #/sbin/udevd --daemon 2>/dev/null >/dev/null 107 /sbin/udevd --daemon 2>&1 >/dev/null 108 #/sbin/udevadm trigger --action=add 2>/dev/null >/dev/null & 109 /sbin/udevadm trigger --action=add 2>&1 >/dev/null & 110 [ -x /etc/init.d/tc-mkdev ] && /etc/init.d/tc-mkdev 111 /usr/bin/rotdash $! 112 echo "${GREEN}Done.${NORMAL}" 113 114 [ -n "$WAITUSB" ] && ( 115 case $WAITUSB in 116 *LABEL*) 117 timeout=${WAITUSB%:*} 118 ID=${WAITUSB#*:} 119 PART=${ID#*=} 120 mkdir /tmp/testusbdevice 121 while [ $timeout -gt 0 ]; do 122 echo -en "${BLUE}\rWaiting as requested ... ${NORMAL} $timeout " 123 timeout=$(($timeout - 1)) 124 DEV1=$(blkid -L "$PART") 125 sleep 1 126 [ -n "$DEV1" ] || continue 127 /bb/mount "$DEV1" /tmp/testusbdevice > /dev/null 2>&1 && timeout=0 128 129 done 130 umount "$DEV1" 131 rmdir /tmp/testusbdevice 132 echo 133 ;; 134 *UUID*) 135 timeout=${WAITUSB%:*} 136 ID=${WAITUSB#*:} 137 PART=${ID#*=} 138 mkdir /tmp/testusbdevice 139 140 while [ $timeout -gt 0 ]; do 141 echo -en "${BLUE}\rWaiting as requested ... ${NORMAL} $timeout " 142 timeout=$(($timeout - 1)) 143 DEV1=$(blkid -U "$PART") 144 sleep 1 145 [ -n "$DEV1" ] || continue 146 /bb/mount "$DEV1" /tmp/testusbdevice > /dev/null 2>&1 && timeout=0 147 148 done 149 umount "$DEV1" 150 rmdir /tmp/testusbdevice 151 echo 152 ;; 153 *) sleep "$WAITUSB" 154 ;; 155 esac 156 ) 157 158 modprobe loop 2>/dev/null 159 modprobe ohci_hcd 2>/dev/null 160 161 #if [ -n "$NOZSWAP" ]; then 162 # echo "${BLUE}Skipping compressed swap in ram as requested from the boot command line.${NORMAL}" 163 #else 164 # modprobe -q zram 165 # modprobe -q zcache 166 # 167 # while [ ! -e /dev/zram0 ]; do usleep 50000; done 168 # grep MemFree /proc/meminfo | awk '{print $2/4 "K"}' > /sys/block/zram0/disksize 169 # mkswap /dev/zram0 >/dev/null 2>&1 170 # swapon /dev/zram0 171 # echo "/dev/zram0 swap swap defaults,noauto 0 0" >> /etc/fstab # Lets swapoff -a work 172 #fi 173 174 if [ -n "$NOFSTAB" ]; then 175 echo "${BLUE}Skipping /etc/fstab creation as requested from the boot command line.${NORMAL}" 176 else 177 echo "${BLUE}Scanning hard disk partitions to create ${YELLOW}/etc/fstab ${NORMAL}" 178 modprobe scsi_wait_scan 2>/dev/null 179 /usr/sbin/rebuildfstab & fstab_pid=$! 180 mv /tmp/98-tc.rules /etc/udev/rules.d/. 2>/dev/null 181 /sbin/udevadm control --reload-rules & 182 fi 183 184 checkfs() { 185 FS=/dev/"$1" 186 if ! grep "^$FS$" /tmp/checkfs > /dev/null 2>&1; then 187 if grep "$FS" /etc/mtab > /dev/null 2>&1; then 188 : 189 else 190 if grep "$FS" /etc/fstab | grep ext[2,3,4] > /dev/null 2>&1; then 191 e2fsck -n "$FS" > /tmp/checkfs."$1" 2>&1 192 if [ "$?" != "0" ]; then 193 echo "$FS" "$2" >> /tmp/checkfs.errors 194 195 echo -n "${YELLOW}"$FS" ${RED}being used for "$2" contains filesystem errors. Advised to reboot \ 196 with "base" option to fix them. Proceed anyway? (y/N:)" 197 read ans 198 if [ "$ans" == "y" ] || [ "$ans" == "Y" ]; then 199 : 200 else 201 echo "${YELLOW}Rebooting..${NORMAL}" 202 /bb/reboot 203 fi 204 fi 205 echo "$FS" >> /tmp/checkfs 206 else 207 echo "Filesystem is not ext[2,3,4] and cannot be checked." > /tmp/checkfs."$1" 208 fi 209 fi 210 fi 211 } 212 213 if [ -n "$SYSLOG" ]; then 214 [ -z "$RSYSLOG" ] || SOPTS=" -L -R $RSYSLOG " 215 /bb/syslogd ${SOPTS} && echo "${GREEN}syslog started.${NORMAL}" 216 /bb/klogd && echo "${GREEN}klog started." 217 fi 218 219 [ -n "$LANGUAGE" ] || LANGUAGE="C" 220 echo -n "${GREEN}Setting Language to ${MAGENTA}$LANGUAGE" 221 echo "LANG=$LANGUAGE" > /etc/sysconfig/language 222 export LANG=$LANGUAGE 223 echo "${GREEN} Done.${NORMAL}" 224 225 if [ -n "$TZ" ]; then 226 echo -n "${GREEN}Setting Timezone to ${MAGENTA}$TZ" 227 export TZ && echo "TZ=$TZ" > /etc/sysconfig/timezone 228 echo "${GREEN} Done.${NORMAL}" 229 fi 230 231 #if [ -n "$NORTC" ]; then 232 # echo "${BLUE}Skipping rtc as requested from the boot command line.${NORMAL}" 233 #else 234 # while [ ! -e /dev/rtc0 ]; do usleep 50000; done 235 # if [ -n "$NOUTC" ]; then 236 # hwclock -l -s & 237 # else 238 # hwclock -u -s & 239 # fi 240 #fi 241 242 if [ -n "$HOST" ]; then 243 sethostname 244 else 245 /bb/hostname -F /etc/hostname 246 fi 247 248 /bb/ifconfig lo 127.0.0.1 up 249 /bb/route add 127.0.0.1 lo & 250 251 if [ -n "$AOE" ]; then 252 IFACE=$( echo $AOE | awk -F: '{ print $1 }') 253 DEV=$( echo $AOE | awk -F: '{ print $2 }') 254 ifconfig $IFACE up 255 modprobe aoe 256 echo "${BLUE}Waiting for $DEV${NORMAL}" 257 CNT=120 258 until [ -e /dev/etherd/interfaces ] 259 do 260 [ $((--CNT)) -le 0 ] && break 261 echo -ne "${RED}$CNT \r" 262 sleep 1 263 done 264 printf "%s\0" $IFACE > /dev/etherd/interfaces 265 echo > /dev/etherd/discover 266 until [ -e /dev/etherd/$DEV ] 267 do 268 [ $((--CNT)) -le 0 ] && break 269 echo -ne "${RED}$CNT \r" 270 sleep 1 271 done 272 if [ $CNT -gt 0 ] ; then 273 ln -s /dev/etherd/$DEV /dev/$DEV 274 mkdir -p /mnt/$DEV 275 mount /dev/$DEV /mnt/$DEV >/dev/null 2>&1 276 else 277 echo -ne "\n$DEV NOT mounted! Press <ENTER>" ; read junk 278 fi 279 echo "${NORMAL}" 280 fi 281 282 # dhcp.sh runs udhcpc async, so it exits before network is up 283 wait4Server() { 284 /etc/init.d/dhcp.sh 285 SERVER=$1 ; NOPING=$2 ; CNT=0 286 if [ "$NOPING" == "1" ] ; then 287 until ifconfig | grep -q Bcast 288 do 289 [ $((CNT++)) -gt 60 ] && break || sleep 1 290 done 291 sleep 1 292 else 293 until ping -c 1 $SERVER >/dev/null 2>&1 294 do 295 [ $((CNT++)) -gt 60 ] && break || sleep 1 296 done 297 fi 298 DHCP_RAN=1 299 } 300 301 if [ -n "$USER" ]; then 302 if ! grep "$USER" /etc/passwd >/dev/null; then addUser; fi 303 else 304 USER="tc" 305 fi 306 echo "$USER" > /etc/sysconfig/tcuser 307 mkdir -p /home/"$USER" 308 309 if [ -n "$SUPERUSER" ]; then 310 touch /etc/sysconfig/superuser 311 fi 312 313 # Setup base directories for TCE Applicatons 314 [ -d "$TCEINSTALLED" ] || mkdir "$TCEINSTALLED" 315 [ -d "$TCEDIR" ] || mkdir "$TCEDIR" 316 [ -d "$TCLOOP" ] || mkdir "$TCLOOP" 317 ln -sf "$TCEDIR" /etc/sysconfig/tcedir 318 chgrp staff "$TCEDIR" "$TCEINSTALLED" "$TCLOOP" 319 chmod g+w "$TCEDIR" "$TCEINSTALLED" "$TCLOOP" 320 321 chmod u+s /bin/busybox /usr/bin/sudo 322 323 get_app() { 324 LOADER=loadsce ; PKG=sce 325 PROTO=$1 326 HOST=${2%%/*} 327 REST=${2#*/} 328 LENG=$((${#HOST}-1)) ; LAST=${HOST:$LENG:1} 329 [ "$LAST" == ":" ] && HOST=${HOST:0:$LENG} 330 FILE=${REST%:*} 331 NAME=${FILE##*/} 332 OPTS=${REST#*:} 333 [ "$OPTS" == "no-ping" ] && NOPING=1 || NOPING=0 334 [ -z "$DHCP_RAN" ] && wait4Server $HOST $NOPING 335 ( TCE=/tmp/tce/$PKG 336 mkdir -p $TCE 337 cd $TCE 338 [ "$PROTO" = "TFTP" ] && tftp -g -r $FILE $HOST 339 [ "$PROTO" = "HTTP" ] && wget -q http://${HOST}/${FILE} 340 [ $SHOWAPPS ] && echo -ne "${BLUE}TFTP Loading Extensions ${YELLOW}" 341 dos2unix -u $NAME 342 while read FILE FL 343 do 344 APP=${FILE##*/} 345 [ "$PROTO" = "TFTP" ] && tftp -g -r $FILE $HOST 346 [ "$PROTO" = "HTTP" ] && wget -q http://${HOST}/${FILE} 347 [ $SHOWAPPS ] && echo -ne "$APP " 348 if [ "$FL" = "-d" ] ; then 349 ( su "$USER" -c "$LOADER $FL $TCE/$APP" ) & 350 sleep 5 351 else 352 su "$USER" -c "$LOADER $FL $TCE/$APP" 353 fi 354 [ "$FL" == "-c" ] && rm $APP 355 done < $NAME 356 [ $SHOWAPPS ] && echo "${GREEN} Done.${NORMAL}" 357 rm $NAME 358 ) 359 } 360 361 # Preload drivers needed for tce/opt/home on lvm/RAID etc 362 if [ -n "$PRETCE" ]; then 363 PKG=sce ; LOADER=loadsce ; LIST=sceboot.lst 364 RAM=/tmp/tce 365 CPTOFS="" 366 if [ "$PRETCE" == "RAM" ] ; then 367 SRC=$RAM 368 else 369 PPATH=${PRETCE%%/*} 370 mkdir -p /mnt/$PPATH 371 mount /dev/$PPATH /mnt/$PPATH 372 SRC=/mnt/$PRETCE 373 [ -x $SRC/onpre.sh ] && cp $SRC/onpre.sh /tmp 374 fi 375 while read NAME OPT 376 do 377 su "$USER" -c "/usr/bin/$LOADER $SRC/$PKG/$NAME" 378 done < $SRC/$LIST 379 [ -x /tmp/onpre.sh ] && /tmp/onpre.sh 380 fi 381 382 # First process tftp and http entries 383 modprobe -q squashfs 2>/dev/null 384 [ -n "$TFTPLIST" ] && get_app "TFTP" $TFTPLIST 385 [ -n "$HTTPLIST" ] && get_app "HTTP" $HTTPLIST 386 387 if [ -n "$NFSMOUNT" ]; then 388 SERVER=$( echo $NFSMOUNT | awk -F: '{ print $1 }') 389 DIR=$( echo $NFSMOUNT | awk -F: '{ print $2 }') 390 OPTS=$( echo $NFSMOUNT | awk -F: '{ print $3 }') 391 [ "$OPTS" == "no-ping" ] && NOPING=1 || NOPING=0 392 [ -z "$DHCP_RAN" ] && wait4Server $SERVER $NOPING 393 wait $fstab_pid 394 [ -x /bin/mount ] && NOLOCK="" || NOLOCK=",nolock" 395 echo "${SERVER}:${DIR} /mnt/nfs nfs defaults${NOLOCK} 0 0" >> /etc/fstab 396 [ $SHOWAPPS ] && echo "Mounting ${SERVER}:${DIR}" 397 mkdir /mnt/nfs 398 mount /mnt/nfs >/dev/null 2>&1 399 fi 400 401 touch /var/tmp/k5_skip 402 if [ -n "$NBD" ]; then 403 modprobe -q nbd 404 SERVER=$( echo $NBD | awk -F: '{ print $1 }') 405 PORT=$( echo $NBD | awk -F: '{ print $2 }') 406 OPTS=$( echo $NBD | awk -F: '{ print $3 }') 407 [ "$OPTS" == "no-ping" ] && NOPING=1 || NOPING=0 408 [ -z "$DHCP_RAN" ] && wait4Server $SERVER $NOPING 409 nbd-client $SERVER $PORT /dev/nbd0 410 mkdir /mnt/nbd0 411 mount /dev/nbd0 /mnt/nbd0 2>&1 412 pidof nbd-client nbd0 >> /var/tmp/k5_skip 413 fi 414 415 if grep -q "^/dev/root" /proc/mounts; then 416 INSTALLED=1 417 echo "${RED}Detected Traditional Hard drive installation.${NORMAL}" 418 fi 419 420 /sbin/ldconfig 2>/dev/null 421 422 [ -n "$TEXT" ] && touch /etc/sysconfig/text 423 [ -n "$XONLY" ] && touch /etc/sysconfig/xonly 424 425 #Check for Virtual Hard Drive 426 if [ -n "$TCVD" ]; then 427 wait $fstab_pid 428 TCVD="${TCVD#/}" 429 TCVD="${TCVD#dev/}" 430 TCVD_DEVICE="${TCVD%%/*}" 431 TCVD_LOOPFILE="${TCVD#*/}" 432 if [ "$TCVD_DEVICE" == "$TCVD_LOOPFILE" ]; then 433 TCVD_DEVICE="$(autoscan $TCVD_LOOPFILE 'f')" 434 fi 435 PARTITION="${TCVD_DEVICE##/dev/}" 436 find_mountpoint "$PARTITION" 437 if [ -n "$MOUNTPOINT" ]; then 438 [ "$MOUNTED" == "yes" ] || /bb/mount "$MOUNTPOINT" 439 usleep_progress 440 if [ -f "$MOUNTPOINT"/"$TCVD_LOOPFILE" ]; then 441 [ -d /mnt/tcvd ] || /bb/mkdir /mnt/tcvd 442 ln -sf "$MOUNTPOINT"/"$TCVD_LOOPFILE" /dev/tcvd 443 printf "/dev/tcvd \t/mnt/tcvd \text2\tloop\t0 0 #Added by TC\n" >> /etc/fstab 444 sync 445 fi 446 fi 447 fi 448 449 unset HOME_SETUP 450 if [ -n "$MYHOME" ]; then 451 wait $fstab_pid 452 PARTITION=${MYHOME##/dev/} 453 find_mountpoint "$PARTITION" 454 if [ -n "$MOUNTPOINT" ]; then 455 if [ "$CHECKFS" == "1" ]; then 456 THISDEV=`echo "$MOUNTPOINT" | sed 's:/mnt/::'` 457 checkfs "$THISDEV" HOME 458 fi 459 [ "$MOUNTED" == "yes" ] || mount "$MOUNTPOINT" 460 461 MS_MNTS=`mount|awk '$5~/fat|vfat|msdos|ntfs/{printf "%s ",$3}'` 462 case "$MS_MNTS" in 463 *"$MOUNTPOINT"* ) 464 echo "Persistent HOME not supported on Microsoft File Systems." 465 echo "${YELLOW}Request for persistent HOME on $PARTITION ignored." 466 echo -n "${RED}Press Enter key.${NORMAL}"; read ans 467 ;; 468 * ) 469 if [ -d "$MOUNTPOINT/home/$USER" ]; then 470 echo "${GREEN}Mounting ${YELLOW}/home ${GREEN} on ${YELLOW}"$MOUNTPOINT"/home.${NORMAL}" 471 mount --bind "$MOUNTPOINT/home" /home 472 HOME_SETUP=1 473 else 474 echo "${GREEN}Mounting ${YELLOW}/home ${GREEN} on ${YELLOW}"$MOUNTPOINT"/home.${NORMAL}" 475 mkdir -p "$MOUNTPOINT/home/$USER" 476 mount --bind "$MOUNTPOINT/home" /home 477 fi 478 ;; 479 esac 480 481 else 482 echo "Invalid device specified. Ignoring persistent HOME request!" 483 fi 484 fi 485 486 setupHome 487 488 unset OPT_SETUP 489 if [ -n "$MYOPT" ]; then 490 wait $fstab_pid 491 PARTITION=${MYOPT##/dev/} 492 find_mountpoint "$PARTITION" 493 if [ -n "$MOUNTPOINT" ]; then 494 if [ "$CHECKFS" == "1" ]; then 495 THISDEV=`echo "$MOUNTPOINT" | sed 's:/mnt/::'` 496 checkfs "$THISDEV" OPT 497 fi 498 [ "$MOUNTED" == "yes" ] || mount "$MOUNTPOINT" 499 500 MS_MNTS=`mount|awk '$5~/fat|vfat|msdos|ntfs/{printf "%s ",$3}'` 501 case "$MS_MNTS" in 502 *"$MOUNTPOINT"* ) 503 echo "Persistent OPT not supported on Microsoft File Systems." 504 echo "${YELLOW}Request for persistent OPT on $PARTITION ignored." 505 echo -n "${RED}Press Enter key.${NORMAL}"; read ans 506 ;; 507 * ) 508 echo "${GREEN}Mounting ${YELLOW}/opt ${GREEN} on ${YELLOW}"$MOUNTPOINT"/opt.${NORMAL}" 509 [ -d "$MOUNTPOINT"/opt ] || mkdir "$MOUNTPOINT"/opt 510 yes n | cp -ai /opt/. "$MOUNTPOINT"/opt/ 2>/dev/null 511 mount --bind "$MOUNTPOINT"/opt/ /opt/ 512 chgrp -R staff /opt/ >/dev/null 2>&1 513 chmod -R g+w /opt/ >/dev/null 2>&1 514 chmod g+s /opt/ >/dev/null 2>&1 515 ;; 516 esac 517 518 else 519 echo "Invalid device specified. Skipping persistent OPT request!" 520 fi 521 fi 522 523 [ -n "$XSETUP" ] && touch /tmp/xsetup_requested 524 525 if [ -n "$LAPTOP" ]; then 526 modprobe ac && modprobe battery 2>/dev/null 527 modprobe yenta_socket >/dev/null 2>&1 || modprobe i82365 >/dev/null 2>&1 528 /sbin/udevadm trigger 2>/dev/null >/dev/null & 529 echo " ${GREEN}Laptop options enabled (AC,Battery, & PCMCIA).${NORMAL}" 530 fi 531 532 if [ -n "$NOSWAP" ]; then 533 echo "${BLUE}Ignoring swap partition(s) seek as requested.${NORMAL}" 534 else 535 wait $fstab_pid 536 /bb/swapon -a 2>/dev/null 537 if [ "$?" == 0 ]; then echo "${GREEN}Possible swap partition(s) enabled.${NORMAL}"; fi 538 fi 539 540 if [ -n "$SWAPFILE" ]; then 541 wait $fstab_pid 542 SWAPFILE=${SWAPFILE##/dev/} 543 find_mountpoint "$SWAPFILE" 544 if [ -n "$MOUNTPOINT" ]; then 545 if [ "$MOUNTED" == "yes" ]; then 546 swapon "$MOUNTPOINT"/tc.swp 547 else 548 mount "$MOUNTPOINT" && swapon "$MOUNTPOINT"/tc.swp 549 fi 550 fi 551 fi 552 553 if [ -n "$RESUME" ]; then 554 rm -f /etc/sysconfig/tc.resume 2>/dev/null 555 RESUME=`basename $RESUME` 556 SWAP_SIZE=$(cat /proc/swaps | grep "$RESUME" | awk '{print $3}') 557 [ -z "$SWAP_SIZE" ] && /bb/swapon /dev/"$RESUME" && SWAP_SIZE=$(cat /proc/swaps | grep "$RESUME" | awk '{print $3}') 558 [ -z "$SWAP_SIZE" ] && exit 1 559 MEM_SIZE=$(cat /proc/meminfo | awk '/MemTotal/{print $2}') 560 if [ $SWAP_SIZE -gt $MEM_SIZE ]; then 561 grep -q disk /sys/power/state && echo "disk" > /etc/sysconfig/tc.resume 562 fi 563 fi 564 565 if [ "$NOICONS" == 1 ]; then 566 > /etc/sysconfig/icons 567 else 568 # If icon manager is specified use that 569 if [ -n "$ICONS" ]; then 570 echo "$ICONS" > /etc/sysconfig/icons 571 else 572 [ -s /etc/sysconfig/icons ] && ICONS=`cat /etc/sysconfig/icons` 573 fi 574 fi 575 [ "$NOICONS" == "ondemand" ] && touch /etc/sysconfig/noondemandicons 576 sync 577 578 wait $fstab_pid 579 if [ "$CHECKFS" == "1" ]; then 580 581 for i in `cat /proc/cmdline`; do 582 case $i in 583 tce=*) TCE=${i#*=} ;; 584 esac 585 done 586 [ -z "$TCE" ] && TCE="$(autoscan 'tce' 'd')"/tce 587 if [ "$TCE" != "/tce" ]; then 588 TCE_DEVICE="${TCE%%/*}" 589 find_mountpoint "$TCE_DEVICE" 590 THISDEV=`echo "$MOUNTPOINT" | sed 's:/mnt/::'` 591 checkfs "$THISDEV" TCE 592 fi 593 594 fi 595 596 MSSG="${BLUE}Loading extensions...${NORMAL}" 597 if [ -n "$SHOWAPPS" ]; then 598 touch /etc/sysconfig/showapps 599 echo "$MSSG" 600 /usr/bin/tce-setup "booting" 601 [ -n "$ISOFILE" ] && /usr/bin/fromISOfile "$ISOFILE" 602 rm /etc/sysconfig/showapps 603 echo "${GREEN}Done.${NORMAL}" 604 else 605 echo -n "$MSSG" 606 /usr/bin/tce-setup "booting" > /dev/null 2>&1 & 607 /usr/bin/rotdash $! 608 [ -n "$ISOFILE" ] && /usr/bin/fromISOfile "$ISOFILE" > /dev/null 2>&1 & 609 /usr/bin/rotdash $! 610 echo "${GREEN}Done.${NORMAL}" 611 if [ -s /tmp/aberr ]; then 612 echo "${RED}Warning! Errors occured during the loading of the extensions.${YELLOW}" 613 cat /tmp/aberr 614 echo -n "${RED}Press Enter key.${NORMAL}"; read ans 615 fi 616 fi 617 618 [ -n "$KEYMAP" ] || KEYMAP="us" 619 if [ -f "/usr/share/kmap/$KEYMAP.kmap" ]; then 620 echo -n "${GREEN}Setting keymap to ${MAGENTA}$KEYMAP" 621 /bb/loadkmap < /usr/share/kmap/$KEYMAP.kmap 622 echo "KEYMAP=$KEYMAP" > /etc/sysconfig/keymap 623 echo "${GREEN} Done.${NORMAL}" 624 fi 625 626 if [ -n "$SECURE" ]; then 627 getpasswd "root" 628 echo "root:$PASSWD" | chpasswd -m 629 getpasswd "$USER" 630 echo "$USER:$PASSWD" | chpasswd -m 631 fi 632 if [ -n "$PROTECT" ]; then 633 getpasswd "encryption" 634 echo "$PASSWD" > /etc/sysconfig/bfe 635 chown ${USER}:root /etc/sysconfig/bfe 636 chmod 600 /etc/sysconfig/bfe 637 fi 638 639 [ -n "$XVESA" ] && sed -i 's/1024x768x32/'"$XVESA"'/' /home/"$USER"/.xsession 2>/dev/null 640 641 # If desktop is specified use that 642 if [ -n "$DESKTOP" ]; then 643 echo "$DESKTOP" > /etc/sysconfig/desktop 644 else 645 [ -s /etc/sysconfig/desktop ] && DESKTOP=`cat /etc/sysconfig/desktop` 646 fi 647 648 # If restore then also pass TCE directory for quick look of mydata.tgz backupfile 649 if [ -n "$MYDATA" ]; then 650 echo "$MYDATA" > /etc/sysconfig/mydata 651 else 652 echo "mydata" > /etc/sysconfig/mydata 653 fi 654 if [ -n "$NORESTORE" ]; then 655 echo "${GREEN}Skipping restore as requested from the command line.${NORMAL}" 656 else 657 TCEDIR=`readlink /etc/sysconfig/tcedir` 658 /etc/init.d/tc-restore.sh "$TCEDIR" 659 fi 660 661 # After restore items 662 if [ -n "$NODHCP" ]; then 663 echo "${GREEN}Skipping DHCP broadcast/network detection as requested on boot commandline.${NORMAL}" 664 else 665 [ -z "$DHCP_RAN" ] && /etc/init.d/dhcp.sh & 666 [ -z "$NORTC" ] || /etc/init.d/settime.sh & 667 fi 668 669 [ -n "$CRON" ] && /etc/init.d/services/crond start 670 671 /sbin/loadcpufreq 2>/dev/null & 672 673 /opt/bootsync.sh 674 675 rm /etc/udev/rules.d/60-persistent-storage.rules 676 /sbin/udevadm trigger 2>&1 >/dev/null && 677 678 /bb/addgroup "$USER" cdrom 679 /bb/addgroup "$USER" tty 680 /bb/addgroup "$USER" dialout 681 /bb/addgroup "$USER" audio 682 /bb/addgroup "$USER" video 683 /bb/addgroup "$USER" plugdev 684 685 686 [ -n "$NOAUTOLOGIN" ] && echo "booting" > /etc/sysconfig/noautologin 687 688 689 if [ -n "$PAUSE" ]; then 690 echo -n "${BLUE}Boot time configuration completed. Press <Enter> to continue.${NORMAL}" 691 read junk 692 fi
'/etc/profile'
1 # /etc/profile: system-wide .profile file for the Bourne shells 2 3 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/bb" 4 5 # Prompt format for Ash (Bash use /etc/bashrc). 6 # 7 if [ "`id -u`" -eq 0 ]; then 8 # Light green and blue colored prompt. 9 #PS1='\e[1;31m\u@\h\e[0m:\e[1;34m\w\e[0m\# ' 10 PS1='\u@\h:\w\# ' 11 else 12 # Light green and blue colored prompt. 13 PS1='\e[1;32m\u@\h\e[0m:\e[1;34m\w\e[0m\$ ' 14 #PS1='\u@\h:\w\$ ' 15 fi 16 17 # Screen display for X and encoding for GTK+ apps. 18 # 19 G_FILENAME_ENCODING=iso8859-1 20 21 # ldd fake 22 # 23 which ldd > /dev/null || alias ldd=LD_TRACE_LOADED_OBJECTS=1 24 25 # Export all variables definied above and set mask. 26 # 27 export PATH LD_LIBRARY_PATH PS1 G_FILENAME_ENCODING ignoreeof 28 umask 022 29 30 if [ -f /etc/sysconfig/language ]; then 31 . /etc/sysconfig/language 32 export LANG LC_ALL 33 fi 34 35 if [ -f /etc/sysconfig/timezone ]; then 36 . /etc/sysconfig/timezone 37 export TZ 38 fi 39 40 for i in /etc/profile.d/*.sh ; do 41 if [ -r "$i" ]; then 42 . $i 43 fi 44 done
'~/.profile'
1 # ~/.profile: Executed by Bourne-compatible login SHells. 2 # 3 # Path to personal scripts and executables (~/.local/bin). 4 [ -d "$HOME/.local/bin" ] || mkdir -p "$HOME/.local/bin" 5 export PATH=$HOME/.local/bin:$PATH 6 7 ONDEMAND=/etc/sysconfig/tcedir/ondemand 8 [ -d "$ONDEMAND" ] && export PATH=$PATH:"$ONDEMAND" 9 10 # Environment variables and prompt for Ash SHell 11 # or Bash. Default is a classic prompt. 12 # 13 PS1='\u@\h:\w\$ ' 14 PAGER='less -EM' 15 MANPAGER='less -isR' 16 LANG=en_US.UTF8 17 18 `which editor >/dev/null` && EDITOR=editor || EDITOR=vi 19 20 export PS1 PAGER LANG EDITOR MANPAGER 21 22 export BACKUP=1 23 [ "`id -un`" = "`cat /etc/sysconfig/tcuser`" ] && echo "$BACKUP" | sudo tee /etc/sysconfig/backup >/dev/null 2>&1 24 export FLWM_TITLEBAR_COLOR="58:7D:AA" 25 26 if [ -f "$HOME/.ashrc" ]; then 27 export ENV="$HOME/.ashrc" 28 . "$HOME/.ashrc" 29 fi 30 31 TERMTYPE=`/bb/tty` 32 [ ${TERMTYPE:5:3} == "tty" ] && ( 33 [ ! -f /usr/bin/Xorg ] || 34 [ -f /etc/sysconfig/text ] || 35 [ -e /tmp/.X11-unix/X0 ] || 36 startx 37 )
'~/.ashrc'
1 # ~/.ashrc: Executed by SHells. 2 # 3 . /etc/init.d/tc-functions 4 5 # Alias definitions. 6 # 7 alias df='df -h' 8 alias du='du -h' 9 10 alias ls='ls -p' 11 alias ll='ls -l' 12 alias la='ls -la' 13 14 # Avoid errors... use -f to skip confirmation. 15 alias cp='cp -i' 16 alias mv='mv -i' 17 alias rm='rm -i'