1. 配置环境
[root@localhost ~]# uname -a
Linux localhost.localdomain 5.0.10-300.fc30.x86_64 #1 SMP Tue Apr 30 16:22:12 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# su - ztg
[ztg@localhost ~]$ pwd
/home/ztg
[ztg@localhost ~]$
set +h
umask 022
export MINILINUX=~/minilinux
mkdir -pv ${MINILINUX}
export LC_ALL=POSIX
export PATH=${MINILINUX}/cross-tools/bin:$PATH
// $ export PATH=${MINILINUX}/cross-tools/bin:/bin:/usr/bin
[ztg@localhost ~]$
mkdir -pv ${MINILINUX}/{bin,boot{,grub},dev,{etc/,}opt,home,lib/{firmware,modules},lib64,mnt}
mkdir -pv ${MINILINUX}/{proc,media/{floppy,cdrom},sbin,srv,sys}
mkdir -pv ${MINILINUX}/var/{lock,log,mail,run,spool}
mkdir -pv ${MINILINUX}/var/{opt,cache,lib/{misc,locate},local}
install -dv -m 0750 ${MINILINUX}/root
install -dv -m 1777 ${MINILINUX}{/var,}/tmp
install -dv ${MINILINUX}/etc/init.d
mkdir -pv ${MINILINUX}/usr/{,local/}{bin,include,lib{,64},sbin,src}
mkdir -pv ${MINILINUX}/usr/{,local/}share/{doc,info,locale,man}
mkdir -pv ${MINILINUX}/usr/{,local/}share/{misc,terminfo,zoneinfo}
mkdir -pv ${MINILINUX}/usr/{,local/}share/man/man{1,2,3,4,5,6,7,8}
for dir in ${MINILINUX}/usr{,/local}; do
ln -sv share/{man,doc,info} ${dir}
done
install -dv ${MINILINUX}/cross-tools{,/bin}
ln -svf ../../proc/mounts ${MINILINUX}/etc/mtab
cat > ${MINILINUX}/etc/passwd << "EOF"
root::0:0:root:/root:/bin/ash
EOF
cat > ${MINILINUX}/etc/group << "EOF"
root:x:0:
bin:x:1:
sys:x:2:
kmem:x:3:
tty:x:4:
daemon:x:6:
disk:x:8:
dialout:x:10:
video:x:12:
utmp:x:13:
usb:x:14:
EOF
cat > ${MINILINUX}/etc/fstab << "EOF"
# file system mount-point type options dump fsck
# order
rootfs / auto defaults 1 1
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
devpts /dev/pts devpts gid=4,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
EOF
cat > ${MINILINUX}/etc/profile << "EOF"
export PATH=/bin:/usr/bin
if [ `id -u` -eq 0 ] ; then
PATH=/bin:/sbin:/usr/bin:/usr/sbin
unset HISTFILE
fi
# Set up some environment variables.
export USER=`id -un`
export LOGNAME=$USER
export HOSTNAME=`/bin/hostname`
export HISTSIZE=1000
export HISTFILESIZE=1000
export PAGER='/bin/more '
export EDITOR='/bin/vi'
EOF
echo "minilinux-test" > ${MINILINUX}/etc/HOSTNAME
cat > ${MINILINUX}/etc/issue<< "EOF"
MINI LINUX 0.1
Kernel \r on an \m
EOF
cat > ${MINILINUX}/etc/inittab<< "EOF"
::sysinit:/etc/rc.d/startup
tty1::respawn:/sbin/getty 38400 tty1
tty2::respawn:/sbin/getty 38400 tty2
tty3::respawn:/sbin/getty 38400 tty3
tty4::respawn:/sbin/getty 38400 tty4
tty5::respawn:/sbin/getty 38400 tty5
tty6::respawn:/sbin