/dev/ram0 / ext3 defaults 1 1 devpts /dev/pts devpts gid=5,mode=620 0 0 proc /proc proc defaults 0 0
4.改寫lilo
在lilo.conf中添加
image = /boot/vmlinuz
initrd=/boot/test_kern/ramdisk.gz
label = test
append="mem=600M ramdisk=92160 root=/dev/ram0 rw"
執行#lilo -v -C /etc/lilo.conf -s /boot
至此,Ramdisk制作完成,具備基本運行環境,加載網卡驅動後能連接網絡,但是還不能ssh登陸。
5.考慮添加一些應用程序,比如ssh等
我現在的做法是,將sshd,ssh等命令和etc下的相關文件拷貝過來,缺少的庫用執行ldd的方法查看,然後拷貝到lib下,dev下還有random和unrandom文件要拷貝,還有var下需要建立empty和run目錄。
起初,在Ramdisk 上運行的系統上執行/etc/rc.d/rc.sshd start時提示“privilege separation user sshd does not exist”。問題原因是uid未知(etc的所有文件是從原編譯環境拷貝的),執行passwd命令時會發生錯誤,提示“unknown uid 0”。解決辦法是添加lib文件
libnss_compat.so.2
libnsl.so.1
libnss_nis.so.2
libnss_files.so.2
我又添加了bash等程序,這樣/lib下有以下這些文件:
-rwxr-xr-x 1 root root 131484 2008-01-25 10:15 ld-Linux.so.2* -rwxr-xr-x 1 root root 23512 2008-01-25 10:14 libacl.so.1* -rwxr-xr-x 1 root root 12324 2008-01-25 10:15 libattr.so.1* -rwxr-xr-x 1 root root 1528742 2008-01-28 10:33 libc.so.6* -rwxr-xr-x 1 root root 25250 2008-01-28 10:33 libcrypt.so.1* -rwxr-xr-x 1 root root 13506 2008-01-28 10:33 libdl.so.2* -rwxr-xr-x 1 root root 96480 2008-01-28 19:09 libnsl.so.1* -rwxr-xr-x 1 root root 35494 2008-01-28 19:09 libnss_compat.so.2* -rwxr-xr-x 1 root root 45552 2008-01-28 19:10 libnss_files.so.2* -rwxr-xr-x 1 root root 41045 2008-01-28 19:10 libnss_nis.so.2* -rwxr-xr-x 1 root root 110796 2008-01-25 10:14 libpthread.so.0* -rwxr-xr-x 1 root root 77439 2008-01-28 10:30 libresolv.so.2* -rwxr-xr-x 1 root root 34905 2008-01-25 10:13 librt.so.1* -rwxr-xr-x 1 root root 10280 2008-01-25 12:38 libtermcap.so.2* -rwxr-xr-x 1 root root 12537 2008-01-28 10:31 libutil.so.1* drwxr-xr-x 3 root root 1024 2008-01-28 10:37 modules/