118.龙芯2k1000-pmon(17)-制作ramdisk

news2024/11/20 4:42:20

目前手上这个设备装系统不容易,总是需要借助虚拟机才能实现。

对生产就不太那么友好,能否不用虚拟机就能装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装系统试试。再会。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1500559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

社区服务类创业项目推荐:抓住社区商业新机遇

大家好,我是一名90后鲜奶吧创业者,目前在社区经营5年时间,今天我想和大家分享一些关于社区服务类创业项目的推荐,都是这么多年我见证过生意最好的店面。 1、社区便利店: 随着人们生活节奏的加快,对便利购…

【Linux实践室】Linux常用命令:文件操作|文件夹操作

🌈个人主页:聆风吟 🔥系列专栏:Linux实践室、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️任务描述二. ⛳️相关知识2.1 🔔Linux文件操作2.1.1 👻创建文件2…

数组连续和 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 给定一个含有N个正整数的数组,求出有多少连续区间(包括单个正整数),它们的和大于等于 x。 输入描述 第一行为两个…

Linux——进程信号(一)

目录 1、信号入门 1.1、技术应用角度的信号 1.2、注意 1.3、信号概念 1.4、用kill -l命令可以查看系统定义的信号列表 1.5、信号处理常见方式概览 2、产生信号 2.1通过终端按键产生信号 Core Dump 2.2、调用系统函数向进程发信号 2.3、由软条件产生信号 3、总结思考…

华为北向网管NCE开发教程(2)REST接口开发

华为北向网管NCE开发教程(1)闭坑选接口协议 华为北向网管NCE开发教程(2)REST接口开发 华为北向网管NCE开发教程(3)CORBA协议开发 假设你现在要开始华为北向接口REST协议之前,需要准备如环境 1准…

学习与学习理论 - 2024教招 - test

一 方向 方向性很重要,像学投篮一样关注发力顺序才是关键出发点,如果这个出发点没确定下来,会走许多弯路。所有学习理论大的观点,到某个人物个人的观点。被干掉之前(不能被干掉),掌握所需的知识…

C++:Stack和Queue的模拟实现

创作不易,感谢三连! 一、容器适配器 适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。 就如同是电源适配器将不适用的交流电…

STM32CubeMX学习笔记13 ---IIC总线

1、IIC 简介 IIC(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短&…

《汇编语言》- 读书笔记 - 第17章-实验17 编写包含多个功能子程序的中断例程

《汇编语言》- 读书笔记 - 第17章-实验17 编写包含多个功能子程序的中断例程 逻辑扇区根据逻辑扇区号算出物理编号中断例程:通过逻辑扇区号对软盘进行读写 代码安装 int 7ch 测试程序效果 实现通过逻辑扇区号对软盘进行读写 逻辑扇区 计算公式: 逻辑扇区号 (面号*8…

【PCIe 链路训练】之均衡(equalization)

1、概述 这篇文章简单介绍一下PCIE phy的均衡原理和过程,USB phy,ethernet phy这些高速的串行serdes也有相同或者相似的结构。可以不用太关注其中的细节,等到debug的时候可以查询协议,但是需要了解这个故事讲的大概内容。整个equalization过程是controller和phy一起配合完成…

喜报|炼石免改造数据安全入选上海网安产业创新大会优秀案例

近日,上海网络安全产业创新大会隆重召开,上海普陀区委副书记、区长肖文高,上海市经济和信息化委员会总工程师葛东波出席并致辞,普陀区副区长肖立出席。大会以“产业赋能、生态打造”为主题,为发掘数据安全领域的优秀产…

【代码随想录算法训练营Day29】 491.递增子序列;46.全排列;47.全排列 II

文章目录 ❇️Day 29 第七章 回溯算法 part05✴️今日内容❇️491.递增子序列自己的思路随想录思路自己的代码 ❇️46.全排列思路代码流程 ❇️47.全排列 II思路代码 ❇️Day 29 第七章 回溯算法 part05 ✴️今日内容 491.递增子序列46.全排列47.全排列 II ❇️491.递增子序…

低压MOS在步进电机驱动器上的应用-REASUNOS瑞森半导体

一、前言 步进电机驱动器是一种用于控制步进电机运动的装置,它是将控制信号转换成步进电机可以识别的控制电压或电流的电路。它在工业自动化领域有着广泛的应用,如机器人、印刷机、木工机床、喷绘机等。步进电机驱动器的组成结构主要由以下部分&#xf…

《C缺陷和陷阱》-笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一、理解函数声明 1.(*(void(*)( ))0)( ); 2.signal 函数接受两个参数: 3.使用typedef 简化函数声明: 二、运算符的优先级…

面试经典150题【61-70】

文章目录 面试经典150题【61-70】61.旋转链表86.分隔链表104. 二叉树的最大深度100.相同的树226.翻转二叉树101.对称二叉树105.从前序与中序遍历序列构造二叉树106.从后序和中序遍历序列构造二叉树117.填充每个节点的下一个右侧节点指针II114.二叉树展开为链表 面试经典150题【…

修复 因 fstab 中UUID 错误导致系统无法正常工作的问题

操作系统: PVE 8.0 /debian 12 (bookworm) 问题症状:可以正常启动进入系统,但是系统盘以只读方式挂载 问题原因:/etc/fstab 中引导区的UUID 被错误修改导致 解决方法: 重启系统,在…

QT:用opencv的KNN识别图片中的LED数字(一)

前言 一款功能测试的软件demo,使用了QT作为界面,主要使用了opencv的KNN识别,使用gstreamer作为管道,用来打开图片。后期会写一篇打开摄像头实时识别的文章。 (正在写,未完成,稍候) 效果一预览: 效果二预览: 效果三预览: 正在写。。。 设计思路 1. 软件UI设…

吴恩达深度学习笔记:深度学习引言1.1-1.5

目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第一周:深度学习引言(Introduction to Deep Learning)1.1 欢迎(Welcome)1.2 什么是神经网络?(What is a Neural Network)1.3 神经网络的监督学习(Supervised Learning …

【C++】C++模板基础知识篇

个人主页 : zxctscl 文章封面来自:艺术家–贤海林 如有转载请先通知 文章目录 1. 泛型编程2. 函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 3. 类模板3.1 类模板的定义格式3.2 类模板的实例化…