soho在哪里做网站世界著名网站开发语言
目前手上这个设备装系统不容易,总是需要借助虚拟机才能实现。
对生产就不太那么友好,能否不用虚拟机就能装Linux系统呢?
主要是文件系统的问题需要解决,平时我们一般是用nfs挂载后,然后对硬盘格式化,之后再把文件系统解压到硬盘中,这个过程就必须借助虚拟机,而且还要求虚拟机的nfs和网络必须正常好用。
这次我就想到了ramdisk,如果借助ramdisk,那么是否就可以脱离掉虚拟机,用几个命令是否就可以把系统装好呢?
好,那么首先得有一个ramdisk才行。
没有找到现成的,那就自己做吧。
一、制作ramdisk的最简文件系统
 1.1 创建根文件系统目录
 
 mkdir ramdisk_ls2k 
 cd ramdisk_ls2k 
 mkdir root dev etc boot tmp var sys proc lib mnt home usr   
 mkdir etc/init.d etc/rc.d etc/sysconfig  
 mkdir usr/sbin usr/bin usr/lib usr/modules  
 mkdir var/lib var/lock var/run var/tmp 
 sudo mknod -m 600 dev/console c 5 1  
 sudo mknod -m 600 dev/null  c 1 3  
 可以写成一个脚本,避免每次都要一行行敲
1.2 拷贝交叉编译工具里面的库
 比如我使用的交叉编译工具是mips64el-loongson-linux-gcc,
 这里我一下没有找到库,所以我选择把busybox(我用的版本是1.34.1)编译为静态库的方式。
       Settings  --->
             [*] Build static binary (no shared libs) 
            (/home/jc/ramdisk_ls2k) Destination path for 'make install'
             设置为安装的目录      
 其他配置不变
       makefile修改一下
             CROSS_COMPILE ?=mips64el-loongson-linux-
             ARCH ?= mips
make之后,直接make install
用编译内核的环境变量设置一下。
 1.3 建立etc目录下的配置文件
 
 1.3.1、拷贝主机etc目录下的passwd、group、shadow文件到ramdisk_ls2k/etc目录下。
 1.3.2、创建etc/mdev.conf内容为空。
 1.3.3、etc/sysconfig目录下新建文件HOSTNAME(主机名),内容为“dazhi”。
 1.3.4、编辑etc/inittab文件,内容如下:
       ::sysinit:/etc/init.d/rcS        #rcS作为系统初始化文件                                 
       console::askfirst:-/bin/sh      #在串口启动一个登录会话
       ::restart:/sbin/init  
       ::ctrlaltdel:/sbin/reboot     
       ::shutdown:/bin/umount -a -r  #告诉init在关机时运行umount命令卸载    所有的文件系统,如果卸载失败,试图以只读方式重新挂载。
       ::shutdown:/sbin/swapoff -a  
          
 1.3.5、编辑etc/init.d/rcS文件,并chmod +x 修改文件权限
       #!/bin/sh
       PATH=/sbin:/bin:/usr/sbin:/usr/bin #启动环境,设置必要的环境变量
       runlevel=S
       prevlevel=N
       umask 022
       export PATH runlevel prevlevel
       echo "----------mount all----------------"
       mount -a   #读取/etc/fstab,加载文件系统
       echo /sbin/mdev>/proc/sys/kernel/hotplug
       
       echo "****************Hello dazhi*********************"
       echo "Kernel version:linux-3.10 (2024)"
       echo "***********************************************"     
       /bin/hostname -F /etc/sysconfig/HOSTNAME #设置机器名字
       mdev –s
1.3.6、编辑etc/fstab
       #device   mount-point     type       option       dump      fsck  
       proc      /proc           proc       defaults     0         0  
       none      /tmp            ramfs      defaults     0         0  
       #mdev     /dev            ramfs      defaults     0         0  
       sysfs      /sys            sysfs      defaults     0         0
1.3.7、编辑etc/profile
       USER="id -un"                    #id -un是打印输出当前的用户名,例如:root
       LOGNAME=$USER
       PS1='[\u@\h $PWD]#'              #“[用户名@主机名 目录]#”, PS1的值即进入shell后的默认
       PATH=$PATH
       HOSTNAME='/bin/hostname'         #通过/bin/hostname获取主机名
       export USER LOGNAME PS1 PATH
       echo “-----/etc/profile-------”
1.4 用nfs验证一下
虚拟机中设置好/etc/exports,然后重启nfs-kernel
手动加载文件系统:
g console=ttyS0,115200 noinitrd root=/dev/nfs rw nfsroot=192.168.0.14:/home/jc/ramdisk_ls2k/,v3 ip=192.168.0.12:192.168.0.14::::eth1
能够正常启动说明文件系统制作成功了。

二、内核设置ramdisk
2.1 需要修改一下内核选项,重新编译

框中的两条,选中并设置路径
然后重新编译内核,

重名了,准备手动加载试试
cp vmlinuz /mnt/hgfs/share-win/vmlinuz-ramdisk
2.2 手动加载,并指定使用ramdisk
load tftp://192.168.0.10/vmlinuz-ramdisk
g console=ttyS0,115200 root=/dev/ram0 rdinit=/linuxrc

启动成功。

制作好的ramdisk,解压之后就是文件夹。
链接: https://pan.baidu.com/s/1pWIdfShpLLspwxNV-NRHYw?pwd=jfww 提取码: jfww
欢迎大家提出宝贵意见。
下期准备用ramdisk装系统试试。再会。
