導航:首頁 > 文件教程 > linuxramdisk修改文件

linuxramdisk修改文件

發布時間:2021-10-25 17:35:49

A. linux內核啟動出錯,我編譯內核,製作完ramdisk,修改完grub.conf,啟動時出現以下錯誤,怎麼回事

ramdisk 出錯。
既然自己編譯 linux 內核,不推薦使用randisk,只使用內核就行,
在編譯內核時一定要將自己使用的文件系統編譯進內核,引導時,內核後跟主分區的設備名就行,
ramdisk的作用就是載入內核驅動的,把文件系統驅動直接編譯進內核,就不需要 ramdisk 了。

B. 如何編輯boot.img裡面的ramdisk

首先你要有一個用戶解鎖fastboot的手機,這樣才能允許你刷入第三方ROM2 q$ B) w; c6 _% z* i: o3 M8 y
其次你版要能找到當前權版本所對應的boot.img或sec_boot.img(帶簽名),通常能拿到的也就是刷機包裡面解出來的sec_boot.img,通過cat mtd出來的不知道行不行=。=
工具:: I t' w H' S, [0 S! ~7 F
split_bootimg.pl google一下,很好找& P* L9 R0 g, G
mkbootfs和mkbootimg 可以從網上下,最好是自己直接編譯!

C. 怎樣修改ramdisk.img裡面運行內存數據

1)sec_boot.img是經過簽名的,需要把文件前0x1000個位元組刪除,也就是ANDROID! 8個字元前面所有位元組刪除,保存為boot.img
2) 運行perl split_bootimg.pl boot.img解出kernel和ramdisk文件,同時記下運行結果中的「Command line: vmalloc=384M mem=2044m@0x200000。。。。」一長串字元備用
3)運行指令把ramdisk的文件解出來
mkdir ramdisk
cd ramdisk
gzip -dc ../boot.img-ramdisk.gz | cpio -i
cd ..
4)修改其中的文件,例如我覺得default.prop裡面的persist.sys.usb.config=manufacture,adb不太爽,想改成=adb,修改保存。如果你想adb有root許可權的話,就去改ro.secure和ro.debuggable
5)重新打包
mkbootfs ./ramdisk | gzip > ramdisk-new.gz
當然如果你自己編譯的mkbootfs也沒有加到path里,就把編譯完的程序考到當前目錄,運行./mkbootfs...
生成boot-new.img
mkbootimg --cmdline '單引號裡面這一段拷貝剛才記下的Command line冒號後面的一長串' --kernel boot.img-kernel --ramdisk ramdisk-new.gz -o boot-new.img
6) 現在如果把生成的boot-new.img直接刷進去,手機就起不來了,問題在於kernel,ramdisk,second stage,tags的地址,
自己編譯的mkbootimg查看一下.c文件就知道base=0x10000000,生成的boot-new.img是按照這個規則來的:
kernel地址=base + 0x00008000,ramdisk地址=base + 0x01000000,
second stage地址=base + 0x00f00000,tags地址=base + 0x00000100。
這跟原始sec_boot.img裡面的地址是不一樣的,本想找到正確的base值,但原

D. 請問下linux RAMDISK機制是怎樣的 是不是要先將KERNEL載入到RAMDISK解壓後再拷貝到普通的RAM處執行呢

一直對linux啟動時掛載根文件系統的過程存在著很多疑問,今天在水木精華區內找到了有用的資料容,摘錄如下: 1。linux啟動時,經過一系列初始化之後,需要mount 根文件系統,為最後運行init進程等做准備,mount 根文件系統有這么幾種方式

E. 怎麼把嵌入式平台的ramdisk.image文件在x86linux平台下運行

如果你的linux的文件系統用的是busybox,而且裡面帶有cp的命令的話,那就直接用cp這個命令就可以了埃

F. 如何在Linux系統下製作RamDisk

用grep在dmesg的輸出中找出RamDisk的大小,然後調整大小
RamDisk的大小是被一個命令行選項控制的,這個選項會在系統啟動時傳給內核。由於RedHat9的默認bootloader是GRUB,我將用新的選項修改/etc/grub.conf,RamDisk大小的內核選項是:ramdisk_size=xxxxx ,xxxxx是指大小為1024-Byte的塊的個數。下面要調整大小設置:/etc/grub.conf,將RamDisk配置為16MB:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda5
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-20.9)
root (hd0,0)
kernel /vmlinuz-2.4.20-20.9 ro root=LABEL=/ hdc=ide-scsi ramdisk_size=16000
initrd /initrd-2.4.20-20.9.img
將文件保存後,需要重啟系統。重啟後,通過查看dmesg的輸出來確認修改已經生效:
dmesg | grep RAMDISK
將RamDisk格式化ram0::mke2fs -m 0 /dev/ram0
掛載RamDisk:mount /dev/ram0 /mnt/rd
查看掛載:mount | grep ram0
用tune2fs命令查看新RamDisk的詳細信息
開機自動創建、掛載,在/etc/rc.local下創建如下腳本:
# Formats, mounts, and sets permissions on my 16MB ramdisk
/sbin/mke2fs -q -m 0 /dev/ram0
/bin/mount /dev/ram0 /mnt/rd
至此可以使用了,如果需要一睦其他用戶或組訪問,需要改相應許可權就好

G. 如何修改Android系統的ramdisk.img

Ramdisk.img就在Tools工具下。而現在,我們是針對真機提取Ramdisk,修改相關文件,再將其放回去,這樣以後Android設備啟動時,載入的都是已經修改過的Ramdisk鏡像了。我們不會去直接用Tools目錄下的Ramdisk,因為很可能你的Boot鏡像是已經修改過的,你只不過想在其基礎上進行進一步修改而已。 1提取 好,進入正題,本文主要以修改boot.img中的ramdisk為例,但是其他的修改原理都是相通的。 首先,我們要把boot鏡像從設備中提取出來,方法就是在上一篇文章中談到的,先去adb shell中 cat /dev/mtd/mtd2 > /sdcard/root.img 然後 adb pull /sdcard/root.img ./ 這樣就把root.img拷貝到本地目錄下了。好,接下來的步驟,可要看仔細了,錯了一點,就完全不對路了。 我們已經介紹過,boot.img的組成結構是 +—————–+ boot header 1 page +—————–+ kernel n pages +—————–+ ramdisk m pages +—————–+ second stage o pages +—————–+ 那我們要做的就是把這幾個部分分別分離出來。具體的分離原理並不是很難,就是特別麻煩。所以建議大家都用現成的腳本來做。點擊unpack下載分離的腳本,點擊repack下載重新打包的腳本。 好,我們現在先進行鏡像分離。用命令 ./split_bootimg.pl boot.img 成功執行後,可以得到兩個文件,一個是boot.img-kernel,另一個是boot.img-ramdisk.gz。我們這里以修改ramdisk為例,所以將其解包 % mkdir ramdisk % cd ramdisk % gzip -dc ../boot.img-ramdisk.gz cpio -i % cd .. 解包之前新建一個文件夾放解包出來的文件,然後進入這個文件夾執行gzip和cpio的命令。至於原理,同上,請參考兩年前的這篇文章。 2 生成新img 好,接下來你就可以做你想做的任何修改了,包括init.rc之類的進程方面的修改,或者丟一個什麼東西進去,或者其他。只需要確保你做的修改沒有問題就行。修改完成後,自然就是要將其重新還原成img包了,這時repack腳本就派上用場。用命令 repack-bootimg.pl boot-new.img 就可以生成新的boot-new.img了。 3 刷入新img 生成了新的img後,我們如何在系統上應用我們的新boot.img呢?首先,把img文件放到sdcard上去 adb push ./boot_new.img /sdcard 然後執行這兩個操作 # cat /dev/zero > /dev/mtd/mtd2 # flash_image boot /sdcard/mynewimage.img 執行第一個操作時,可能會提示你 write: No space left on device 這個信息沒關系,不用管它。兩個命令都執行後,最後adb shell reboot即可。如果重啟順利,那麼恭喜你,你的新鏡像刷成功了,此時的ramdisk自然也是新的ramdisk了。 4 刷boot鏡像有問題? 其實到這里,才是俺想發揮的地方。上面介紹的所有步驟,有兩個特點 4.1 國外友人上都介紹過 4.2 G1上成功率最高 所以如果你是用Magic或者Hero,有一定幾率會出線重啟之後,畫面就停留在 HTC 或者Android那裡,不會進入系統。此時你必須拿出電池重新開機,按照我這篇文章所講的方法刷一次recovery image,才能正常進入系統。如果你真的遇到這種情況,就說明上面介紹的這個方法不適合你,那麼,還有沒有別的方法讓系統boot我們自己的boot image呢? 當然有。在這篇文章中,我們介紹了有很多第三方ROM供我們刷機,從而達到更多功能或者獲得root許可權的目的。其中,我們介紹了裡面有一個update.zip的東西,如果親自刷過機的朋友就知道這是什麼文件。我同時也介紹了,update.zip裡面就是要添加到你的system中的各種工具,其中就包括了boot.img。也就是說,我們可以自己做一個屬於自己的ROM,其中包括我們自己的boot.img。

H. linux ramdisk 有什麼作用

Ram Disk 就是將內存中的一塊區域作為物理磁碟來使用的一種技術。對於用戶來說,可以把RAM disk與通常的內硬碟分區同等對待來使用容。
內存檔對於保存加密數據來說很有用,因為我們如果將加密的文件解密到普通磁碟的話,即使我們隨後刪除了解密文件,數據仍然會留在磁碟上。這樣是非常不安全的。而對於 RamDisk 來說,沒有這樣的問題。
假設有幾個文件要頻繁的使用,你如果將它們加到內存當中,程序運行速度會大副提高,因為內存的讀寫速度遠高於硬碟。
像Web伺服器,需要大量的讀取和交換特定的文件的電腦,在Web伺服器上建立RamDisk會大大提高網路讀取速度。
注意:在2.6版本後,Ramdisk的這一作用開始被tmpfs(Virtual memory file system support)取代。

閱讀全文

與linuxramdisk修改文件相關的資料

熱點內容
女程序員職業規劃 瀏覽:323
微信收藏能收藏多少個文件 瀏覽:161
哪款蘋果電腦玩游戲好 瀏覽:472
js獲取當前頁面的標題 瀏覽:997
威勝智能電表如何採集監測數據 瀏覽:31
如何加密u盤文件夾 瀏覽:860
網站懸浮窗代碼 瀏覽:4
蘋果5外屏都包括什麼 瀏覽:580
好看的愛情電影60分鍾左右的 瀏覽:453
P開頭 網站 瀏覽:98
學習計算機編程前景如何 瀏覽:930
寶馬gt大燈怎麼編程 瀏覽:755
北郵網路技術實踐 瀏覽:731
u盤不能讀取此卷無法識別的文件 瀏覽:300
讓管理會計信息化插上大數據翅膀 瀏覽:824
mysql每天取一條資料庫 瀏覽:606
schdoc是什麼文件 瀏覽:391
html源代碼下載 瀏覽:726
skype官方下載linux 瀏覽:496
新僵屍先生最後那個小孩去哪了 瀏覽:718

友情鏈接