社区新版论坛已上线,点击立即前往!使用 openKylin 账户授权登录,解锁更多体验!

openKylin̳

 һ

Linuxѧϰ֮ϵͳĹ []

        ִ򣬻ӭһۡܶණڸ⣬󣬻ӭָ
ʵ黷ubuntu 12.04 LTS
ں˰汾linux-3.9.4
        ΪһֱLinuxĹȽϸȤлúõоһ£л˵ֱӽ⡣
        ׻˵ĺã£ôһϵͳں˼޸оȻܴԼеں֣һ󣬽ں˱޷΢Щء±һʵںǷdzҪġLinuxѧϰ֮ں˱ϵͳá
        ڱεһģҲǷdzҪģҪDzqemuģģlinuxºܳãﲻ׸
        ں밲װqemuģɺ󣬾Ϳʽʼ֮ˡ
        ΪںѾҪΪԼLinuxϵͳ׼һdzҪIJ֡ļϵͳҪַ
һ
        ȽĿĿ¼ӳ
        dd if=/dev/zero of=myinitrd.img  bs=4096 count=1024
        dd Linux/UNIX µһdzõָСĿ鿽һļڿͬʱָתdd Ҫѡ
1ֵָĵطַβӦ: b=512, c=1, k=1024, w=2, xm=number m
2if=file     ļȱʡΪ׼롣
3of=file    ļȱʡΪ׼
4ibs=bytes     һζ bytes ֽ(һСΪ bytes ֽ)
5obs=bytes    һд bytes ֽ(һСΪ bytes ֽ)
6bs=bytes      ͬʱöдĴСΪ bytes ɴ ibs obs
7cbs=bytes     һת bytes ֽڣתС
8skip=blocks    ļͷ blocks ٿʼơ
9seek=blocks     ļͷ blocks ٿʼơ(ֻͨеļǴ̻ŴʱЧ)
10count=blocks      blocks 飬С ibs ָֽ
11conv=conversion[,conversion...]     ָIJתļ
        
        mkfs.ext3 myinitrd.img
        ˼ǽ֮ǰ.imgļʽΪext3ļʽ
        Ȼ󴴽rootfsĿ¼ΪһյĹص㣬֮ǰʽΪext3ļϵͳʽӳļصrootfsĿ¼¡
        mkdir rootfs
        sudo mount -o loop myinitrd.img rootfs
        һʹǿںԴext3ļϵͳӳӦIJ
        Ȼ󴴽һԼinitҪȷһlinuxϵͳϵͳĹУinit̹ʵʵļϵͳ֮󣬻жǷûָinit=,ûУִ֮һ/sbin/init/etc/init/bin/init/bin/shǴԼinitΪûָ
        
        ԿinitҪ仰
        Ȼʹþ̬ӵķɿִļһִļĿĿ¼£rootfs¡
        gcc -static -o init init.c
        cp init rootfs/
        Ȼ׼devĿ¼/devĿ¼Ҫǰlinux豸ļ
        sudo mkdir rootfs/dev
        sudo mknod rootfs/dev/console c 5 1
        sudo mknod rootfs/dev/ram b 1 0
        consolę豸ֱڵϵļ̺ʾֱӺͼӵԭ豸̨Ҳ̨֮linuxбزٵ豸ramΪlinuxĸ豸͹صġ
        Ϊ֮ǰѾext3ļϵͳʽļϵͳӳصrootfsĿ¼£Щʵ϶myinitrd.imgһԼĸļϵͳӳеIJȻжء
        sudo umount rootfs
        ˣһӦóĸĿ¼ӳmyinitrd.img׼ˡ
        Ȼʹ֮ǰװõqemuģģ⣬Լlinuxϵͳܷ
        qemu -kernel linux-3.9.4/arch/x86/boot/bzImage -initrd myinitrd.img -append "root=/dev/ram init=/init"
        Կqemu-kernelָԼLinuxϵͳںӳλã֮ǰں˵bzImageľ·Ȼͨ-initrdָԼĸĿ¼ӳ-appendָǵĸ豸/dev/ramָΪûָinitн£
        
        ԿԼinitΪûָɹinitִУˣ÷һĸļϵͳɹء


        õķͨʹbusyboxļϵͳ
        busyboxԴ룬ѹ
        http://busybox.net/downloads/busybox-1.19.3.tar.bz2
        Ȼbusybox-1.19.3Ŀ¼£busyboxñ롣
        make defconfig
        make menuconfig
        Ҫ޸:
        busybox settings -> build options -> build busybox as a static binaryһѡϡ
        make
        Ȼ׼Ŀ¼ӳ񣬲װbusyboxĿ¼ӳС
        dd if=/dev/zero of=busyboxmyinitrd12M.img bs=4096 count=3072
        mkfs.ext3 busyboxmyinitrd12M.img
        mkdir rootfs
        sudo mount -o loop busyboxmyinitrd12M.img rootfs
        cd busybox-1.19.3
        sudo make CONFIG_PREFIX=../rootfs/  install
        
        sudo umount rootfs
        ԼͨbusyboxĸĿ¼ӳѾˣʹqemuģһ¡
        qemu -kernel linux-3.9.4/arch/x86/boot/bzImage -initrd busyboxmyinitrd12M.img -append "root=/dev/ram init=/bin/ash"
        н£
        
        Կ뵽busyboxṩshell˸ļϵͳسɹ
        Ϊֹǿ԰ǰĹ׼ʵĽĿʼˡ
        ǽgrubĴӳ
        Ȼgrubgrub̡
        grub,ѹ
        ftp://alpha.gnu.org/gnu/grub/grub-0.97-i386-pc.tar.gz
        ӳ
        dd if=/dev/zero of=vampirem.img bs=512 count=2880
        grub
        sudo losetup /dev/loop3 vampirem.img
        sudo dd if=./grub-0.97-i386-pc/boot/grub/stage1 of=/dev/loop3 bs=512 count=1
        sudo dd if=./grub-0.97-i386-pc/boot/grub/stage2 of=/dev/loop3 bs=512 seek=1
        sudo losetup -d /dev/loop3
        losetupϸlosetuploop豸ʹ
        ʵ൱ڲһѭ豸loop3ΪһмĹص㣬Լgrubӳvampirem.imgӦ޸ĺͲ
        Ȼqemuģϲһ£ǷԽgrub档
qemu -fda vampirem.img

        
        OKǿgrubɹˡ
        ʼ׼ԼlinuxϵͳĴӳ
        dd if=/dev/zero of=40M.img bs=4096 count=10240
        sudo losetup /dev/loop3 40M.img
        ȻҪڴӳϽһ
        sudo fdisk /dev/loop3

        ԿmDz쿴ϢģDz쿴һ

        Ȼ󿴵n½һaǽΪpǴӡwǰѷдϲ˳ǣ


        ֮󣬽ʽΪext3fsļϵͳʽصrootfsĿ¼¡
        sudo losetup -d /dev/loop3
        sudo losetup -o 1048576 /dev/loop3 40M.img
        ƫֵ1048576Ϊ֮ǰ÷ʱǿԿһ20482048*512=1048576Ǵ˴ƫֵ
        sudo mkfs.ext3 /dev/loop3
        sudo mount -o loop /dev/loop3 rootfs/
        Ȼ֮ǰ׼õģļϵͳӳļںӳļrootfsĿ¼£ǵĴӳļС
        sudo cp busyboxmyinit12M.img rootfs/
        sudo cp linux-3.9.4/arch/x86/boot/bzImage rootfs/
        Ȼrootfs½bootĿ¼ԼbootĿ¼µgrubĿ¼
        sudo mkdir rootfs/boot
        sudo mkdir rootfs/boot/grub
        Ȼ֮ǰصgrubboot/grubĿ¼µļrootfs/boot/grubĿ¼¡
        sudo cp ./grub-0.97-i386-pc/boot/grub/* rootfs/boot/grub
        ȻҪrootfs/boot/grubĿ¼½һ˵ļmenu.lst£

        ˼ԣﲻ׸
        sudo umount rootfs
        sudo losetup -d /dev/loop3              
        ŵʱ̵ˣǿһ£ܷgruḅڴӳgrubܡ
        qemu -boot a -fda vampirem.img -hda 40M.img


       Կɹӡ
        һ£ӸղõԼlinuxϵͳĴӳļgrubȻ
        qemu -hda 40M.img



       ˣԼһС͵LINUXϵͳ~



¥
2013-6-20 16:52:40
ظ

ʹõ ٱ

Linuxѧϰ֮ϵͳĹ []

κ⻶ӭָһۣͬ˵Ƿһƪϵͳõӡ
ɳ
 ¥| 2013-6-20 16:56:12
ظ

ʹõ ٱ

Linuxѧϰ֮ϵͳĹ []

suiang 2013-6-20 17:27 ༭
kingvampirem 2013-6-20 16:56
κ⻶ӭָһۣͬ˵Ƿһƪϵͳõӡ

ó {:5_104:}
2013-6-20 17:25:58
ظ

ʹõ ٱ

Linuxѧϰ֮ϵͳĹ []

suiang 2013-6-20 17:25
ó

ӭˮݰָ{:7_142:}
ذ
 ¥| 2013-6-20 17:35:27
ظ

ʹõ ٱ

Linuxѧϰ֮ϵͳĹ []

kingvampirem 2013-6-20 17:35
ӭˮݰָ

ˮ...
5#
2013-6-20 17:50:22
ظ

ʹõ ٱ

Linuxѧϰ֮ϵͳĹ []

ϵͳlfsʼ:D
6#
2013-6-21 08:57:04
ظ

ʹõ ٱ

Linuxѧϰ֮ϵͳĹ []

penghuan 2013-6-21 08:57
ϵͳlfsʼ

ĿеðЦˡ
7#
 ¥| 2013-6-21 15:07:05
ظ

ʹõ ٱ

Linuxѧϰ֮ϵͳĹ []

ðһо
8#
2013-6-26 16:10:30
ظ

ʹõ ٱ

Linuxѧϰ֮ϵͳĹ []

yhl_18736068585 2013-6-26 16:10
ðһо

ɺ󣬻ӭ
9#
 ¥| 2013-6-26 20:24:59
ظ

ʹõ ٱ

Linuxѧϰ֮ϵͳĹ []

kingvampirem 2013-6-20 16:56
κ⻶ӭָһۣͬ˵Ƿһƪϵͳõӡ

ּ֧ʱûʱ䣬ʱϸо¡лK
10#
2013-8-5 19:50:19
ظ

ʹõ ٱ

12һҳ

openKylin

GMT+8, 2024-6-14 15:03 , Processed in 0.022755 second(s), 17 queries , Gzip On.

Copyright ©2022 openKylin. All Rights Reserved .

ICP No. 15002470-12 Tianjin

ٻظ ض б