<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > initramfs如何切入真實(shí)linux文件系統(tǒng)

        initramfs如何切入真實(shí)linux文件系統(tǒng)

        時(shí)間: 若木635 分享

        initramfs如何切入真實(shí)linux文件系統(tǒng)

        initramfs切入真實(shí)linux文件系統(tǒng)
        initramfs切入真實(shí)linux文件系統(tǒng)主要用到switch_root命令。
         
        通常initramfs都是為安裝最終的根文件系統(tǒng)做準(zhǔn)備工作,它的最后一步需要安裝最終的根文件系統(tǒng),然后切換到新根文件系統(tǒng)上去。
         
        以往 的基于ramdisk 的initrd 使用pivot_root命令切換到新的根文件系統(tǒng),然后卸載ramdisk。但是initramfs是rootfs,而rootfs既不能 pivot_root,也不能umount。
         
        busybox的解決方案是,提供了switch_root命令,完成全部的處理過(guò)程,使用起來(lái)非常方便。
         
        switch_root命令的格式是:
         
         switch_root [-c  /dev/console] NEW_ROOT NEW_INIT [ARGUMENTS_TO_INIT] 
        其中NEW_ROOT是實(shí)際的根文件系統(tǒng)的掛載目錄,執(zhí)行switch_root命令前需要掛載到系統(tǒng)中;
        NEW_INIT是實(shí)際根文件系統(tǒng)的init程序的路徑,一般是/sbin/init;
        -c /dev/console是可選參數(shù),用于重定向?qū)嶋H的根文件系統(tǒng)的設(shè)備文件,一般情況我們不會(huì)使用;
        ARGUMENTS_TO_INIT則是傳遞給實(shí)際的根文件系統(tǒng)的init程序的參數(shù),也是可選的。
        特別注意
        switch_root命令必須由PID=1的進(jìn)程調(diào)用,也就是必須由initramfs的init程序直接調(diào)用,不能由init派生的其他進(jìn)程調(diào)用,否則會(huì)出錯(cuò),提示: switch_root: not rootfs
         
        也是同樣的原因,init腳本調(diào)用switch_root命令必須用exec命令調(diào)用,否則也會(huì)出錯(cuò),提示: switch_root: not rootfs
         
        示例
        下面是個(gè)人寫的一個(gè)init文件,把分區(qū)寫到命令里了,你可以從“/proc/cmdline”中讀取內(nèi)核參數(shù)來(lái)找到要切換的分區(qū)。
         
        #!/bin/sh
        #[ expression ] expression為真返回true,否則返回false。-d file FILE exists and is a directory
        # ||或運(yùn)算,前面為假運(yùn)行后面。
        #下面一段的意思,沒有對(duì)應(yīng)目錄創(chuàng)建。
        [ -d /dev ] || mkdir -m 0755 /dev
        [ -d /root ] || mkdir -m 0700 /root
        [ -d /sys ] || mkdir /sys
        [ -d /proc ] || mkdir /proc
        [ -d /tmp ] || mkdir /tmp
        #-----------------------------------
         
        mkdir -p /var/lock
        echo "mount -t sysfs -o nodev,noexec,nosuid none /sys"
        mount -t sysfs -o nodev,noexec,nosuid none /sys 
        echo "mount -t proc -o nodev,noexec,nosuid none /proc "
        mount -t proc -o nodev,noexec,nosuid none /proc 
         
        # Note that this only becomes /dev on the real filesystem if udev's scripts
        # are used; which they will be, but it's worth pointing out
        if ! mount -t devtmpfs -o mode=0755 none /dev; then
        mount -t tmpfs -o mode=0755 none /dev
        #echo "mknod -m 0600 /dev/console c 5 1"
        #mknod -m 0600 /dev/console c 5 1
        #mknod /dev/null c 1 3
        # Make some basic devices first, let udev handle the rest
        mknod /dev/null c 1 3
        mknod /dev/ptmx c 5 2
        mknod /dev/console c 5 1
        mknod /dev/kmsg c 1 11
        fi
        mkdir /dev/pts
        mount -t devpts -o noexec,nosuid,gid=5,mode=0620 none /dev/pts || true
        mdev -s
         
        echo "mount /dev/sda3 /root"
        mount  /dev/sda3 /root
         
        echo "switch_root /root /sbin/init "
        exec switch_root /root /sbin/init 
         
        75390 主站蜘蛛池模板: 国产高清在线男人的天堂| 国产成人亚洲精品自产在线| 人妻少妇不满足中文字幕| 少妇人妻88久久中文字幕| 亚洲东京色一区二区三区| 亚洲欧美综合一区二区三区| 欧美成人精品手机在线| 18禁超污无遮挡无码网址| 夜夜爽无码一区二区三区| 亚洲国产午夜精品福利| 久久99国产视频| 日韩精品一二三黄色一级| 99久久久无码国产精品免费 | 夜夜躁狠狠躁日日躁| 好男人视频在线播放| 国产精品久久久国产盗摄| 秋霞人妻无码中文字幕| 国产香蕉尹人在线视频你懂的| 亚洲综合一区国产精品| 久久久一本精品99久久| 国产又爽又黄的精品视频| 国产女同疯狂作爱系列| 亚洲2区3区4区产品乱码2021| 成人网站国产在线视频内射视频 | 又爽又黄又无遮挡的激情视频| 美女啪啪网站又黄又免费| 中文有码字幕日本第一页| 亚洲自拍偷拍激情视频| 亚洲精品久荜中文字幕| 一区二区视频| 狠狠操夜夜爽| 国产成人高清亚洲综合| 在线观看mv的免费网站| 久爱www人成免费网站| 久久精品中文字幕极品| 国产精品视频一品二区三| 中文字幕日韩人妻高清在线| 日韩永久永久永久黄色大片| 日本边添边摸边做边爱| 精品在免费线中文字幕久久| 中文字幕人妻色偷偷久久|