首页 > 其他分享 >文件系统切换

文件系统切换

时间:2023-04-27 19:55:08浏览次数:45  
标签:chroot newroot init 文件系统 switch 切换 root

//疑问:到底采用swith_root 还是chroot ?

/若采用了chroot之后,web端能见到chroot之后的文件系统吗?!!!

/switch_root好像需要多建一个分区

/结合chroot可以退出的特性ctrl+d

 

//busybox默认调用initramfs中根目录的linuxrc程序。该程序调用rcS脚本,但该脚本并不是以PID=1运行的。所以,在根目录中自己写一个init脚本,然后在该脚本中挂载硬盘文件系统,然后再调用switch_root即可切换到硬盘启动。

 

/其次chroot仅仅是在系统目录上进行了隔离,并没有对进程、网络等层面进行隔离。

 

switch_root的用法基本如下,需要newrootdir和切换之后的要执行的init(1)的路径,以及需要的传递的参数:

switch_root /sysroot "/sbin/init"

switch_root newroot init跳转到另外一个文件系统,并且把newroot作为新的mount tree,并且执行init程序

 设备/dev/sda1里面是新的文件系统,现在将它挂在到newroot目录下,那么在switch_root的时候,就必须要switch到这个newroot目录下,而不能switch到newroot目录的任何子目录。

 

chroot 的作用就是切换系统的根位置,而这个作用最为明显的是在系统初始引导磁盘的处理过程中使用,从初始 RAM 磁盘 (initrd) 切换系统的根位置并执行真正的 init,本文的最后一个 demo 会详细的介绍这种用法。

 

 

 

//因此我们这里将rcS文件改回init (不再需要内存中的linux的shell环境)保证我们加入语句以init的权限调用 pid=1的进程。

#cp etc/init.d/rcS  ./init
# vi init
—————–init final-1————–
#!/bin/sh
mount -t proc proc /proc
mount -t sysfs sysfs /sys
echo /sbin/mdev > /proc/sys/kernel/hotplug           //热插拔
echo ‘waiting to load all devices…..’
mdev -s
sleep 10
mount /dev/sda1        /mnt                     //这里我们把挂载写死了
echo "The pid now is $$"                    //打印当前pid 确保为1
exec switch_root  /mnt /sbin/init              //转换

 

参考:

https://blog.csdn.net/u012385733/article/details/102565591

https://www.cnblogs.com/yinsua/p/3540624.html

 

标签:chroot,newroot,init,文件系统,switch,切换,root
From: https://www.cnblogs.com/tiange-137/p/17272823.html

相关文章

  • pinia vue3 ts 切换到其他页面后再切回来数据不见了
    piniavue3ts切换到其他页面后再切回来数据不见了刷新有数据,但是切换到其他页面后再切回来数据不见了,我需要切回来后数据还有。因为我的数据是刷新的话就会watch监视数据有没有改变,但是切换其他页面不会触发我应该把得到的数据存储到store里面这样切换其他页面也不会消失......
  • element-ui中多个表单el-form进行显示/隐藏切换时校验失效
    问题描述:当一个弹窗或页面中含有多个表单(都需要校验),且需要进行显示/隐藏切换时,容易造成切换后的表单元素的校验失效。如下: 第一个表单的输入框都触发blur提示语后,切换至第二个表单第二个表单的输入框触发blur后,第一个输入框的校验失效了。返回后,第一个输入框触发blur,校验......
  • Qt音视频开发41-文件推流(支持网页和播放器播放并切换进度)
    一、前言本功能最初也是有一些人提过类似的需求,就是能不能将本地的音视频文件,通过纯Qt程序推流出去,然后用户可以直接在网页上播放,也可以用各种播放器播放,然后还可以任意切换播放进度,其实说白了就是个文件服务器,用户通过网络地址访问以后,告诉对方当前是媒体文件就会自动播放,是其他......
  • Linux内核分析:深入理解进程切换
      我们知道进程切换就是变更进程上下文,而实现上下文切换的函数就是context_switch函数,该函数为kernel/sched/core.c文件中,代码如下:/**context_switch-switchtothenewMMandthenewthread'sregisterstate.*/static__always_inlinestructrq*context_swit......
  • PPT实现单页多张图片点击切换
    效果:在同一张幻灯片里,点击出来第一张图片,使用完之后,鼠标点击,这张图片消失,再出来下一张图片;如此继续,直到知道所有相关图片放映结束。    其实很简单,主要用到自定义动画。将多张图片导入到同一张幻灯片中(是同一张)按出场顺序叠加,最先出来的放到最底下。然后对每一张图片按顺序......
  • vue主应用,qiankun 子应用切换主应用样式错乱问题
    vue主应用,qiankun子应用切换主应用样式错乱问题 constchildRoute=['/flinkdashboard','/dolphinscheduler','/datainsight']//子应用路径constisChildRoute=(path)=>childRoute.some(item=>path.startsWith(item));constrawAppendChild=......
  • jdk环境配置已经版本切换
    下载安装jdk到电脑盘,两个版本要下载到一个盘里面下安装好后右击我的电脑找到高级系统设置,点开环境变量新建环境变量总计环境变量一共添加四个其中java8和java11是是选择文件路径JAVA_HOME是用来选择连个jdk版本环境变量设置好之后双击path双击打开把java文件路径下移到最下面然后......
  • 在程序里面执行system(“cd /某个目录“),为什么路径切换不成功?
    粉丝提问:彭老师,问下,在程序里面执行system("cd/某个目录"),这样会切换不成功,为啥呢实例代码:粉丝的疑惑是明明第10行执行了cd/media操作,为什么12行执行的pwd>test2.txt结果提示的仍然是当前目录?这是一个很不错的问题,要想整明白这个问题,需要知道system的原理。system()函......
  • linux操作系统分析实验五-深入理解进程切换
    Lab5:深入理解进程切换首先找到对应进程调度的代码文件Kernal/sched/core.c  找到context_switch()函数   其中包括rq,为进程的runningqueue;以及进程切换前后的进程描述符prev和next  首先调用一些函数做上下文切换的准备,与最后出现的finish_task_switch()成......
  • Linux性能优化篇-了解CPU上下文切换
     我们了解到导致平均负载,有可能是以下几种方面:CPU密集型(造成cpu利用率升高,可以理解)I/O密集型(io和cpu互斥的,也造成cpu利用率增高-不可中断进程的)大量进程(???)根据平均负载的解释,单位时间内的处于可运行的进程和不可中断进程的进程数,Systemloadaveragesistheaveragenumberofproc......