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命令,完成全部的處理過程,使用起來非常方便。
 
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ù)來找到要切換的分區(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 主站蜘蛛池模板: 老妇xxxxx性开放| 极品蜜臀黄色在线观看| 广东少妇大战黑人34厘米视频| 久9视频这里只有精品| 国产999久久高清免费观看| 性xxxxxx中国寡妇mm| 亚洲国产午夜精品福利| 国产亚洲精品成人av久| 久久精品第九区免费观看| 一色桃子中出欲求不满人妻| 亚洲 欧美 唯美 国产 伦 综合| 国产精品无码不卡在线播放 | 永久国产盗摄一区二区色欲| 久久久久久久久18禁秘| 国产高清在线精品一区二区三区| 国产色悠悠在线免费观看| 亚洲欧洲日产国无高清码图片| 99久久婷婷国产综合精品| jlzz大jlzz大全免费| 国产短视频一区二区三区| 亚洲成人av在线资源| 亚洲AV无码专区亚洲AV紧身裤| 亚洲男人在线天堂| 欧美乱码卡一卡二卡四卡免费| 成人免费A级毛片无码片2022| 久天啪天天久久99久孕妇| 国产免费久久精品44| 日韩区中文字幕在线观看| 免费无码肉片在线观看| 精品久久久久久成人AV| 国产精品白丝久久AV网站| 色综合久久精品中文字幕| 艳妇乳肉豪妇荡乳在线观看| 2020国产欧洲精品网站| 亚洲精品国产自在现线最新| 亚洲一区二区美女av| 亚洲一区二区精品动漫| 国产高清在线精品一区| 成人特黄特色毛片免费看| 亚洲av激情一区二区三区| 国产综合有码无码中文字幕|