Debian( 四 )

安装至磁碟主引导或者分区引导grub-install --root-directory=/path/to/root/ --no-floppy /dev/sdX(Y)nano /path/to/root/boot/grub/grub.cfg字型<fontconfig><selectfont><acceptfont><pattern><patelt name="family"><string>unifont</string></patelt></pattern></acceptfont></selectfont><match target="font" ><test compare="less" name="size" ><double>8</double></test><edit mode="assign" name="size" ><double>8</double></edit></match><match><test name="family"><string>SimSun</string></test><test name="style"><string>Regular</string></test><edit name="antialias" mode="assign"><bool>false</bool></edit></match><match><test name="family"><string>宋体</string></test><test name="style"><string>Regular</string></test><edit name="antialias" mode="assign"><bool>false</bool></edit> </match><alias><family>sans-serif</family><prefer><family>Tahoma</family><family>SimSun</family></prefer></alias><alias><family>serif</family><prefer><family>Tahoma</family><family>SimSun</family></prefer></alias><alias><family>monospace</family><prefer><family>DejaVu Sans Mono</family><family>unifont</family></prefer></alias></fontconfig>虚拟磁碟file initrd.img #查看档案类型fdisk -l initrd.img #查看虚拟磁碟分区mount -t <fs> -o loop,offset=<Start*Sector> initrd.img /mnt#挂载虚拟磁碟(raw格式)分区cpio -i -d < initrd.img #cpio解压find . | cpio --quiet -R 0:0 -o -H newc | gzip -9 > ../initrd.img #cpio打包后用gzip压缩一个busybox製作初始化档案系统简单例子如下:#编译安装rm -rf busybox && git clone https://github 。com/mirror/busyboxcd busyboxmake allyesconfigmake -j 20make install#修改档案(/lib64/ld-linux-x86-64 。so.2複製到lib64/,其余库档案複製到lib/)cd _installmkdir etccp -r ../examples/bootfloppy/etc/init{.d,tab} etc/rm linuxrc && touch etc/fstabcat > init << EOF#!/bin/sh/bin/mkdir /sys && /bin/mount -t sysfs -o nodev,noexec,nosuid sysfs /sys /bin/mkdir /proc && /bin/mount -t proc -o nodev,noexec,nosuid proc /proc/bin/mdev -s && /bin/echo /bin/mdev > /proc/sys/kernel/hotplug[ -z "\$MOUNT" ] && exec /bin/init; \$MOUNT; [ ! -z "\$ROOT" ] && /bin/mount --bind \$ROOT /root; exec /bin/switch_root /root \${INIT:-/lib/systemd/systemd}EOF#挂载新根目录位置命令比如 MOUNT="/bin/mount -t btrfs UUID= /root"#转到新根目录后第一个执行程式路径比如sysvinit INIT="/sbin/init"核心的部分设定参数也可以添加到init中比如:/bin/sync && /bin/echo 3 > /proc/sys/vm/drop_caches/bin/echo OFF > /proc/acpi/bbswitch/bin/echo 2 > /proc/sys/vm/overcommit_memory/bin/echo 0 > /proc/sys/vm/swappiness/bin/echo 1000 > /sys/class/backlight/intel_backlight/brightness改变init许可权chmod 755 init生成initrd.imgfind . | cpio --quiet -R 0:0 -o -H newc | gzip -9 > ../initrd.imgbootstrap对于一个具体的平台来说,只能安装与当前核心相同架构的Debian系统(64位系统支持32位) 。简单使用流程如下(安装一个amd64架构、sid分支Debian GNU/Linux基础系统):Debian家族作业系统apt-get install debootstrap即可使用,非Debian家族作业系统(指任何其他GNU/Linux发行版)或者不想安装该软体git clone git://anonscm.debian 。org/d-i/debootstrap.git注意,debootstrap运行时需要bash脚本MAKEDEVmake -C debootstrapnano debootstrap/debootstrap #将 /usr/share/debootstrap 替换为 ./debootstrap#ppp用来拨接,iw、wpasupplicant等用来连线连线无线网路或者创建无线网路 ./debootstrap/debootstrap \--include=debootstrap,initramfs-tools,btrfs-tools,grub2,\ppp,iw,wpasupplicnat,dnsmasq,bridge-utils,ssh,ftp,axel \--exclude=aptitude,aptitude-common,nano,tasksel,tasksel-data --arch amd64 sid sid-dir ftp://ftp.debian 。org/debian/cd sid-dirtar cpJf ../sid-dir.txz *mount -t btrfs -o defaults,compress=zlib,noatime,nobarrier /dev/sda1 /mnttar xpf sid-dir.txz -C /mnt/#修改 /mnt/etc/fstab如下:echo -e "en_US.UTF-8 UTF-8\nzh_CN.UTF-8 UTF-8" > /mnt/etc/locale.genecho "DEBIAN" > /mnt/etc/hostnameecho -e "127.0.0.1\nDEBIAN DEBIAN" >> /mnt/etc/hostscat /mnt/usr/share/zoneinfo/Asia/Chongqing > /mnt/etc/localtime #时区设定(BIOS时钟为本地时间)echo "Asia/Chongqing" > /mnt/etc/timezoneecho -e "\n\nLOCAL" > /mnt/etc/adjtimemount --bind /dev /mnt/devmount -t tmpfs /tmp /mnt/tmpmount -t proc /proc /mnt/procmount -t sysfs /sys /mnt/syschroot /mnt /bin/bashhwclock --systohcpasswd rootecho "nameserver 8.8.8.8" > /etc/resolv.conf