Ⅰ ramdisk三種實現方式
Ramdisk/ramfs/tmpfs
Ramdisk:
大小固定,默認4096k。在編譯內核的時候需將block device 中的Ramdisk支持選項加上。
如果對Ramdisk的支持已經編譯進內核,可以如下方式使用:
查看可用的Ramdisk,使用 ls /dev/ram*
創建一個目錄 mkdir /mnt/test
對/dev/ram0創建文件系統 mke2fs /dev/ram0
最後將創建的文件系統掛載到該目錄下
mount /dev/ram /mnt/test
ramfs:
大小可以根據需要進行增加和減少。
處於虛擬文件系統層VFS,不像ramdisk基於虛擬在內存中的其他文件系統(ex2fs)。
如果對Ramdisk的支持已經編譯進內核,可以如下方式使用:
創建目錄,載入ramfs到該目錄
mkdir /testRam
mount -t ramfs none /testRam
預設的情況下,被限制為最多使用內存大小的一半
也可通過maxsize進行制定
eg:創建一個限定最大使用內存2M的ramfs
mount -t ramfs none /test Ram -o maxsize=2000
tmpfs:
不同於傳統的用塊設備block device來進行實現的Ramdisk,
也不同於針對物理內存的ramfs
tmpfs既可以使用物理內存,也可以使用交換分區。
大小不固定,可以根據需要進行增加或減少
使用tmpfs需要編譯內核時選擇
虛擬內存文件系統支持(Virtual memory filesystem support)」
載入tmpfs:
mkdir -p /mnt/tmpfs
mount tmpfs /mnt/tmpfs -t tmpfs
指定大小
mount tmpfs /mnt/tmpfs -t tmpfs -o size=32M
Ⅱ linux 根文件系統 什麼時候使用ramdisk
開發環境:Fedora 9
交叉編譯工具鏈:-linux-gcc 4.3.2 with EABI
嵌入式Linux內核版本:2.6.29.4-FriendlyARM。昨天寫貼子的時候具體記不清了,今天起來啟動開發板用uname -r查一下,就是叫做2.6.29.4-FriendlyARM,帖子已經改好了。本文就是友善之臂的2.6.29.4-FriendlyARM的那個版本的內核的基礎上改的。其它版本的應該也類似,僅供參考。
開發板:mini2440-128M Nand Flash
Bootloader:u-boot-2009.11
具體步驟如下:
1.解壓內核源碼樹
解壓linux-2.6.29-mini2440-20090708.tgz到自己的工作目錄,會生成一個友善之臂修改過的並且有幾個mini2440默認配置文件的內核源碼目錄linux-2.6.29。具體步驟參照友善之臂mini2440開發板用戶手冊,具體不詳述了。
2.修改內核配置選項
進入內核源碼目錄linux-2.6.29目錄
#cp config_mini2440_t35 .config
#make menuconfig ARCH=arm
打開配置菜單,修改兩個配置項,分別是:
a):General setup-->選擇 Initial RAM filesystem and RAM disk...... 項
b):Device Drivers-->Block devices-->選擇 RAM block device support 項
並檢查Optimize for size是否被選中,如果沒有則選中,此項優化內核大小,根據需要進行配置。
修改(8192)Default RAM disk size kbytes選項為(4096)Default RAM disk size kbytes,之所以修改是因為我之後製作的ramdisk是4096KB大小的。當然如果你想製作8192KB大小的ramdisk,這里就要對應為8192了,以此類推。但是最小系統嘛,是不用那麼大的ramdisk的。此項的默認配置就是(4096),以前我改過這個配置,所以是(8192)了。如果這個大小和你做的ramdisk不匹配,則啟動時仍然會出現kernel panic內核恐慌,提示ramdisk格式不正確,掛載不上ramdisk。
然後特別要注意的一點是,ramdisk是一種內存虛擬磁碟技術,實質上並不是一種文件系統,它使用的文件系統時ext2文件系統。所以一定要在make menuconfig ARCH=arm的時候進入File systems菜單,選上<*> Second extended fs support。以提供內核對ext2文件系統的支持。我以前添加過了ext2文件系統了,所以開始的時候在此沒有說明,在此為了說明為什麼有的人照著我的方法做了,但是仍然kernel panic,特別把這一步也加上。
然後保存配置退出。
這樣就為內核添加好了ramdisk啟動功能和ramdisk的驅動支持了。
3.修改內核啟動參數
方法有二:
a):修改.config的第310行,修改CONFIG_CMDLINE=""的定義
修改為CONFIG_CMDLINE="initrd=0x31000000,0x200000 root=/dev/ram rw init=/linuxrc console=ttySAC0 mem=64M"
保存。
意思為從ramdisk啟動,ramdisk壓縮文件起始地址在內存地址0x31000000處,文件大小為0x200000。
此參數也可以在make menuconfig ARCH=arm時進入Boot options菜單,然後在Default kernel command string里修改。效果是一樣的。
b):或者不修改.config的的第310行CMDLINE定義,而是用u-boot的bootargs環境變數來傳遞啟動參數。
同樣也是修改該環境變數為bootargs=initrd=0x31000000,0x200000 root=/dev/ram rw init=/linuxrc console=ttySAC0 mem=64M
並saveenv保存u-boot環境變數
以上a),b)的效果是一樣的。
4.編譯內核
#make zImage ARCH=arm CROSS_COMPILE=arm-linux-
然後是二十分鍾左右的等待。
編譯完成後在當前目錄下就出現了zImage內核映像了。
好像友善之臂把內核源碼目錄里的uImage目標給注釋了,以前在論壇里看到過有人說,直接make uImage好像提示沒有uImage的目標。所以我就先製作zImage,然後再用u-boot的mkimage工具轉化為uImage。其實uImage就是在zImage的開頭部分增加了一個64位元組的內核映像說明。
5.製作uImage內核映像
由於我使用的Bootloader是u-boot,所以要將zImage轉化為uImage,方法如下:
#mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -n "Linux kernel Image" -d zImage uImage-ramdisk
說明:mkimage工具是u-boot格式uImage內核映像製作工具。如果成功編譯u-boot之後,它會在u-boot源碼樹下的tools目錄之下。建議將其拷貝到宿主機的/sbin/目錄下,以方便使用。mkimage使用時的具體參數不再詳述,不清楚的請自己查閱。
6.製作ramdisk根文件系統
該過程是製作ramdisk根文件系統的核心步驟,方法如下:
a)創建根文件系統目錄:
#cd轉入到你的工作目錄。
#mkdir rootfs
#cd rootfs
#mkdir bin dev etc lib proc sbin sys usr mnt tmp var
#mkdir usr/bin usr/lib usr/sbin lib/moles
b)創建最基本的設備文件:
#cd dev
#mknod -m 666 console c 5 1
#mknod -m 666 null c 1 3
#cd ..
c)安裝/etc配置文件:
這里可以直接把友善之臂的root_qtopia里的幾個基本的配置文件拷貝過來,只拷貝必要的即可,並對其內容進行刪減,因為我做的ramdisk並不包含Qtopia等,全拷貝過來也沒有用。
我是從網上找的最小系統的etc配置文件直接解壓到我製作的根文件系統里了,並做參照友善之臂的root_qtopia添加了一些內容,見最後的說明。
操作如下:
#tar etc.tar.gz -C /xxx/rootfs
xxx表示你要製作的rootfs所在的目錄。
d)編譯內核模塊:
方法是如下:
進入Linux內核源碼目錄(linux-2.6.29)
#make moles ARCH=arm CROSS_COMPILE=arm-linux-
e)安裝內核模塊:
#make moles_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs
xxx表示你要製作的rootfs所在的目錄。
f)配置busybox
進入busybox目錄執行#make menuconfig
進入Busybox Settings -> build Options ->選中"Build busybox as a static binary「,即靜態鏈接,免去拷貝大量的庫文件。
Installation Options -> 選中"Don't use /usr",以免busybox不慎被安裝到宿主機系統的相應目錄下,破壞宿主機系統。
Busybox Installation Prefix (/xxx/rootfs),修改該選項表明編譯後的busybox將安裝到該位置。
g)編譯、安裝busybox
#make ARCH=arm CROSS_COMPILE=arm-linux-
幾分鍾編譯完成後
#make install
安裝到Busybox Installation Prefix (/xxx/rootfs)設定的目錄里。當前為我要製作的根文件系統目錄(/xxx/rootfs)。
Ⅲ 如何修改ramdisk文件系統
ramdisk 是一種基於內存抄的虛擬磁碟技術,採用ext2文件系統。ramdisk.gz是ramdisk文件再壓縮後的格式。
查看ramdisk.gz根文件系統,或者對原有的文件系統進行修改,只需解壓,再把獲得的鏡像文件掛載即可。
步驟如下:1)解壓:轉到ramdisk.gz所在文件夾
#gunzip ramdisk.gz
注意,解壓後會得到ramdisk鏡像文件,該鏡像文件會把原有的ramdisk.gz覆蓋,因此如果想保留ramdisk.gz復制到其他文件夾後再解壓。
2)掛載#mkdir /mnt/loop
#mount –o loop ramdisk /mnt/loop //
掛載鏡像到loop目錄
#cd /mnt/loop
這里可以看到, 就是ramdisk.gz成功載入後的目錄
3)修改文件系統的內容
比如設置固定的IP地址,MAC地址。
4)umount /mnt/loop卸載 /mnt/loop0.
5)重新壓縮成.gz壓縮文件
#gzip –v9 ramdisk//生成新的ramdisk.gz壓縮文件
Ⅳ 如何製作和使用Jffs2文件系統
嵌入應用:如何製作和使用Jffs2文件系統 (zhuan)本文主要介紹如何在AT91SAM9261EK板子上製作和使用jffs2文件系統,使用的是linux-2.6.21內核。
首先配置MTD
$ make menuconfig
進入 Memory Technology Devices (MTD) --->
<*> Memory Technology Device (MTD) support
[*] Debugging
[*] MTD partitioning support
[*] Command line partition table parsing
[*] Direct char device access to MTD devices
[*] Caching block device access to MTD devices
RAM/ROM/Flash chip drivers ----->
<*> Detect non-CFI AMD/JEDEC-compatible flash chips
<*> Support for AMD/Fujitsu flash chips
Mapping drivers for chip access --->
[*] Support non-linear mappings of flash chips
Self-contained MTD device drivers --->
[*] Support for AT45... DataFlash
NAND Flash Device Drivers ---->
[*] NAND Device Support
[*] Support for NAND Flash /SmartMedia on AT91
File systems ---->
<*> Second extended fs support
[*] Inotify file change notification support
[*] Inotify support for user space
<*> Filesystem in Userspace support
Miscellaneous filesystems
<*> Journalling Flash File System v2 (JFFS2) support
[*] JFFS2 write-buffering support
<*> Compressed ROM file system support (cramfs)
以上配置中沒有列出的,都沒選;其配置僅做參考,可根據自己的需要自行配置。
$ make all
其次製作mtd-util工具
從網上下載zlib-1.2.3.tar.gz解壓縮$ cd zlib-1.2.3
$ ./configure –prefix=/usr/local/arm/3.4.1/arm-linux --shared
修改Makefile如下:
CC=arm-linux-gcc
LDSHARED=arm-linux-ld -shared
$ make all
$ make install
注意:這里是安裝在/usr/local/arm/3.4.1/arm-linux目錄下
由於交叉編譯mtd工具時需要zlib.h文件,所以在編譯之前先安裝zlib庫文件。
從網上下載mtd-snapshot-20050519.tar.bz2 解壓縮 $ cd mtd/util
修改該目錄下的Makefile:
CROSS=arm-linux-
$ make all
然後將該目錄下生成的 flash_erase,flash_eraseall, mkfs.jffs2工具放在ramdisk 文件系統中(我這里放在/bin目錄下),另外在ramdisk文件系統的dev目錄下要保證有mtd0~mtd9,mtdblock0~mtdblock9這些設備,如果沒有可參考 ramdisk文件系統的製作,也可從pc機相同目錄下拷貝,要加上文件屬性。
另外,需要將/arm-linux/lib目錄下的libz.so, libz.so.1, libz.so.1.2.3文件拷貝到ramdisk文件系統的/lib目錄下,否則mkfs.jffs2工具不能使用。
最後將新生成的uImage和ramdisk文件下載到板子上,起動系統,使用命令 cat /proc/mtd可以看到
dev: size erasesize name
mtd0: 00040000 00020000 "Partition 1"
mtd1: 0ffc0000 00020000 "Partition 2"
mtd2: 00420000 00000210 "spi0.0-AT45DB321x"
這里mtd0,mtd1是nandflash上的分區; mtd2是dataflsh上的分區,該分區上放有u-boot,uImage.img,ramdisk.img,所以我們這里可以使用空的nandflash上的兩個分區。使用之前要先用工具flash_erase或者flash_eraseall擦除nandflash,具體使用的步驟如下:
# flash_erase /dev/mtd1
製作jffs2映像
# cd /var/tmp
# mkdir jffs2 (jffs2下的目錄可以任意建)
# mkfs.jffs2 –d jffs2/ -o jffs2.img
# cp /var/tmp/jffs2/jffs2.img /dev/mtdblock1
最後# mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可,使用結束可使用$ umount /mnt/mtd卸載.
如果只是當作普通的jffs2 來使用dataflash或者nandflash,可不必製作 jffs2映像,只需要最後一步,# mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可。
AT91sam9263EK使用JFFS2根文件系統
在AT91sam9263EK成功配置了NFS根文件系統後,後來又想把JFFS2也移植到AT91sam9263EK上吧,說干就干。
1. 呵呵,其實很簡單我使用的linux-2.6.20內核里已經有jffs2 文件系統支持,選上jffs2即可
File systems --->
Miscellaneous filesystems --->
<*> Journalling Flash File System v2 (JFFS2) support
(0) JFFS2 debugging verbosity (0 = quiet, 2 = noisy)
[*] JFFS2 write-buffering support
[*] JFFS2 summary support (EXPERIMENTAL)
[*] JFFS2 XATTR support (EXPERIMENTAL)
[*] JFFS2 POSIX Access Control Lists
[*] JFFS2 Security Labels
[*] Advanced compression options for JFFS2
[*] JFFS2 ZLIB compression support
[*] JFFS2 RTIME compression support
[ ] JFFS2 RUBIN compression support
JFFS2 default compression mode (priority)
選上MTD支持
Device Drivers --->
Memory Technology Devices (MTD) --->
<*> Memory Technology Device (MTD) support
[ ] Debugging
<*> MTD concatenating support
[*] MTD partitioning support
< > RedBoot partition table parsing
[*] Command line partition table parsing
<*> ARM Firmware Suite partition parsing
--- User Moles And Translation Layers
<*> Direct char device access to MTD devices
<*> Caching block device access to MTD devices
<*> FTL (Flash Translation Layer) support
<*> NFTL (NAND Flash Translation Layer) support
[ ] Write support for NFTL
2. 從ttp://www.linux-mtd.infradead.org/上下載
mtd-utils-1.0.0.tar.gz 到宿主機。
解壓
tar xvzf mtd-utils-1.0.0.tar.gz
進入mtd-utils-1.0.0目錄修改Makefile進行編譯。
編譯出mkfs.jffs2,nandwrite等工具
3. 創建jffs2根文件系統:
首先要有一個其他類型的根文件系統,製作和獲取方式可以參見<< AT91sam9263EK使用NFS根文件系統>>
比如可以:
mount -t cramfs rootfs_lnxdemo.cramfs tmp/ -o loop
rootfs_lnxdemo.cramfs由atmel提供當然你可以自己製作,這里直接使用atmel的省去了製作的麻煩。
tar czvf target.tar.gz tmp/
生成jffs2根文件系統鏡像:
mkfs.jffs2 –l –s 0x400 –e 0x20000 –d tmp/ -o target.jffs2
4. 燒寫jffs2根文件系統鏡像到nand flash。
燒寫方法應該有多種常用的有2種(呵呵自己認為的):
a.通過nand編程器燒寫鏡像文件到nand flash晶元然後再焊接到pcb.
b.掛載nfs文件系統,使用nandwrite工具寫鏡像文件
到mtd設備。
第一種適合生產時使用,而我們測試時候比較適合使用第二種方式。
掛載nfs文件系統:
nandwrite –o /dev/mtd1 target.jffs2
或者是在nfs 根文件系統下:
mount –t jffs2 /dev/mtdblock1 /mnt
cd /mnt
tar xvzf ../target.tar.gz
umount /mnt
5. 配置內核啟動參數如下:
setenv bootargs mem=64M console=ttyS0 115200 root=/dev/mtdblock1 rootfstype=jffs2 rw
6. 重新啟動,呵呵內核使用jffs2文件系統自動掛載根文件系統到mtdblock1設備上。
ls 測試一下
vi test
hello this is for test jffs2 filesystem.
保存退出。
Sync
重新啟動
vi test
內容依舊。
Ok jffs2根文件系統引導成功。
Linux聯盟收集整理 ,轉貼請標明原始鏈接
Ⅳ Linux系統分析、裁減及RAMOS製作
使用Linux開發,根據應用需求的不同有不同的配置開發方法,但是一般都要經過如下的過程:
1.建立開發環境
操作系統一般使用RedHat-Linux,版本從7到9都可以,選擇定製安裝或全部安裝,通過網路下載相應的GCC交叉編譯器進行安裝(例如arm-Linux-gcc、arm-μclibc-gcc),或者安裝產品廠家提供的交叉編譯器。
2.配置開發主機
配置MINICOM,一般的參數為波特率為115 200bps,數據位為8位,停止位為1,無奇偶校驗,軟體硬體流控設為無。在Windows下的超級終端的配置也是這樣的。MINICOM軟體的作用是作為調試嵌入式開發板的信息輸出的監視器和鍵盤輸入的工具。配置網路,主要是配置NFS網路文件系統,需要關閉防火牆,簡化嵌入式網路調試環境設置過程。
3.建立引導裝載程序BOOTLOADER
從網路上下載一些公開源代碼的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據自己具體的晶元進行移植修改。有些晶元沒有內置引導裝載程序,例如三星的ARM7、ARM9系列晶元,這樣就需要編寫開發板上Flash的燒寫程序,網路上有免費下載的Windows下通過JTAG並口簡易模擬器燒寫ARM外圍Flash晶元的燒寫程序,也有Linux下的公開源代碼的J-Flash程序。如果不能燒寫自己的開發板,就需要根據自己的具體電路進行源代碼修改。這是系統正常運行的第一步。如果購買了廠家的模擬器當然比較容易燒寫Flash,這對於需要迅速開發自己產品的人來說可以極大地提高開發速度,但是其中的核心技術是無法了解的。
4.下載別人已經移植好的Linux操作系統
如μCLinux、ARM-Linux、PPC-Linux等,如果有專門針對所使用的CPU移植好的Linux操作系統那是再好不過的,下載後再添加自己的特定硬體的驅動程序,進行調試修改,對於帶MMU的CPU可以使用模塊方式調試驅動,對於μCLinux這樣的系統則需編譯進內核進行調試。
5.建立根文件系統
從下載使用BUSYBOX軟體進行功能裁減,產生一個最基本的根文件系統,再根據自己的應用需要添加其他程序。默認的啟動腳本一般都不會符合應用的需要,所以就要修改根文件系統中的啟動腳本,它的存放位置位於/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動掛裝文件系統的配置文件/etc/fstab,具體情況會隨系統不同而不同。根文件系統在嵌入式系統中一般設為只讀,需要使用mkcramfs、genromfs等工具產生燒寫映像文件。
6.建立應用程序的Flash磁碟分區
一般使用JFFS2或YAFFS文件系統,這需要在內核中提供這些文件系統的驅動,有的系統使用一個線性Flash(NOR型)512KB~32MB,有的系統使用非線性Flash(NAND型)8~512MB,有的兩個同時使用,需要根據應用規劃Flash的分區方案。
7.開發應用程序
應用程序可以放入根文件系統中,也可以放入YAFFS、JFFS2文件系統中,有的應用不使用根文件系統,直接將應用程序和內核設計在一起,這有點類似於μCOS-II的方式。
8.燒寫內核、根文件系統、應用程序
9.發布產品
Ⅵ 如何在Linux系統下製作RamDisk
1.查看你的系統已經創建了什麼
RedHat默認創建16個RamDisk,雖然它們沒有激活或使用任何Ram。系統列出的設備是ram0~ram19,但是只有ram0~ram15是默認可用的。使用下面的命令可用檢出這些塊設備:
viewplain
[root]#ls-l/dev/ram*
lrwxrwxrwx1rootroot4Jun1200:31/dev/ram->ram1
brw-rw----1rootdisk1,0Jan302003/dev/ram0
brw-rw----1rootdisk1,1Jan302003/dev/ram1
brw-rw----1rootdisk1,10Jan302003/dev/ram10
brw-rw----1rootdisk1,11Jan302003/dev/ram11
brw-rw----1rootdisk1,12Jan302003/dev/ram12
brw-rw----1rootdisk1,13Jan302003/dev/ram13
brw-rw----1rootdisk1,14Jan302003/dev/ram14
brw-rw----1rootdisk1,15Jan302003/dev/ram15
brw-rw----1rootdisk1,16Jan302003/dev/ram16
brw-rw----1rootdisk1,17Jan302003/dev/ram17
brw-rw----1rootdisk1,18Jan302003/dev/ram18
brw-rw----1rootdisk1,19Jan302003/dev/ram19
brw-rw----1rootdisk1,2Jan302003/dev/ram2
brw-rw----1rootdisk1,3Jan302003/dev/ram3
brw-rw----1rootdisk1,4Jan302003/dev/ram4
brw-rw----1rootdisk1,5Jan302003/dev/ram5
brw-rw----1rootdisk1,6Jan302003/dev/ram6
brw-rw----1rootdisk1,7Jan302003/dev/ram7
brw-rw----1rootdisk1,8Jan302003/dev/ram8
brw-rw----1rootdisk1,9Jan302003/dev/ram9
lrwxrwxrwx1rootroot4Jun1200:31/dev/ramdisk->ram0
現在,用grep在dmesg的輸出中找出RamDisk的大小
viewplain
[root]#dmesg|grepRAMDISK
RAMDISKdriverinitialized:
RAMDISK:Compressedimagefoundatblock0
你可用看到,RamDisk默認只有4MB。我想要一個16MB的RamDisk,所以,下一步要配置Linux,使得在啟動過程中使用一個更大的RamDisk。
2.增加RamDisk的大小
RamDisk的大小是被一個命令行選項控制的,這個選項會在系統啟動時傳給內核。由於RedHat9的默認bootloader是GRUB,我將用新的選項修改/etc/grub.conf,RamDisk大小的內核選項是:ramdisk_size=xxxxx,xxxxx是指大小為1024-Byte的塊的個數。下面是我要添加到/etc/grub.conf的內容,它將RamDisk配置為16MB:
viewplain
#grub.confgeneratedbyanaconda
#
#
#NOTICE:Youhavea/bootpartition.Thismeansthat
#/boot/,eg.
#root(hd0,0)
#kernel/vmlinuz-versionroroot=/dev/hda5
#initrd/initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
titleRedHatLinux(2.4.20-20.9)
root(hd0,0)
kernel/vmlinuz-2.4.20-20.9roroot=LABEL=/hdc=ide-scsiramdisk_size=16000
initrd/initrd-2.4.20-20.9.img
將文件保存後,你需要重啟系統。重啟後,通過查看dmesg的輸出來確認修改已經生效:
viewplain
[root]#dmesg|grepRAMDISK
RAMDISKdriverinitialized:
RAMDISK:Compressedimagefoundatblock0
3.格式化RamDisk
無需將RamDisk格式化為日誌文件系統,我們將使用EXT2文件系統。我只想使用一個
RamDisk,所以我只格式化ram0。
viewplain
[root]#mke2fs-m0/dev/ram0
mke2fs1.32(09-Nov-2002)
Filesystemlabel=
OStype:Linux
Blocksize=1024(log=0)
Fragmentsize=1024(log=0)
4000inodes,16000blocks
0blocks(0.00%)reservedforthesuperuser
Firstdatablock=1
2blockgroups
8192blockspergroup,8192fragmentspergroup
2000inodespergroup
:
8193
Writinginodetables:done
:done
180days,whichevercomesfirst.Usetune2fs-cor-itooverride.
-m0選項指定了文件系統上root用戶保留區塊的比例為0,這是默認的特性。我希望普通用戶可以使用所有的RamDisk空間。
4.新建一個掛載點並掛載RamDisk
你已經格式化了RamDisk,現在要為它新建一個掛載點。然後就可以掛載你的RamDisk並使用它。我們將會使用/mnt/rd文件夾。
viewplain
[root]#mkdir/mnt/rd
[root]#mount/dev/ram0/mnt/rd
檢測新掛載的RamDisk
viewplain
[root]#mount|grepram0
/dev/ram0on/mnt/rdtypeext2(rw)
[root]#df-h|grepram0
/dev/ram016M13K16M1%/mnt/rd
你可以用tune2fs命令查看新RamDisk的詳細信息
viewplain
[root]#tune2fs-l/dev/ram0
tune2fs1.32(09-Nov-2002)
Filesystemvolumename:none
Lastmountedon:notavailable
FilesystemUUID:fbb80e9a-8e7c-4bd4-b3d9-37c29813a5f5
Filesystemmagicnumber:0xEF53
Filesystemrevision#:1(dynamic)
Filesystemfeatures:filetypesparse_super
Defaultmountoptions:(none)
Filesystemstate:notclean
Errorsbehavior:Continue
FilesystemOStype:Linux
Inodecount:4000
Blockcount:16000
Reservedblockcount:0
Freeblocks:15478
Freeinodes:3989
Firstblock:1
Blocksize:1024
Fragmentsize:1024
Blockspergroup:8192
Fragmentspergroup:8192
Inodespergroup:2000
Inodeblockspergroup:250
Filesystemcreated:MonDec814:33:572003
Lastmounttime:MonDec814:35:392003
Lastwritetime:MonDec814:35:392003
Mountcount:1
Maximummountcount:22
Lastchecked:MonDec814:33:572003
Checkinterval:15552000(6months)
Nextcheckafter:SatJun514:33:572004
Reservedblocksuid:0(userroot)
Reservedblocksgid:0(grouproot)
Firstinode:11
Inodesize:128
在我的系統中,我需要'var'用戶能夠讀寫RamDisk,所以必須修改/mnt/rd文件夾的所有者和許可權。
viewplain
[root]#chownvan:root/mnt/rd
[root]#chmod0770/mnt/rd
[root]#ls-ald/mnt/rd
drwxrwx---2vanroot4096Dec811:09/mnt/rd
RamDisk掛載點的所有者和許可權要根據你的特定情況進行修改。
Ⅶ 如何在Linux系統下製作RamDisk
1. 查看你的系統已經創建了什麼
RedHat默認創建16個RamDisk,雖然它們沒有激活或使用任何Ram。系統列出的設備是ram0~ram19,但是只有ram0~ram15是默認可用的。使用下面的命令可用檢出這些塊設備:
[root]# ls -l /dev/ram*
2. 增加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的輸出來確認修改已經生效:
[root]# dmesg | grep RAMDISK
RAMDISK driver initialized: 16 RAM disks of 16000K size 1024 blocksize
RAMDISK: Compressed image found at block 0
3. 格式化RamDisk
無需將RamDisk格式化為日誌文件系統,我們將使用EXT2文件系統。我只想使用一個RamDisk,所以我只格式化ram0。
[root]# mke2fs -m 0 /dev/ram0
mke2fs 1.32 (09-Nov-2002)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
4000 inodes, 16000 blocks
0 blocks (0.00%) reserved for the super user
First data block=1
2 block groups
8192 blocks per group, 8192 fragments per group
2000 inodes per group
Superblock backups stored on blocks:
8193
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
-m 0選項指定了文件系統上root用戶保留區塊的比例為0,這是默認的特性。我希望普通用戶可以使用所有的RamDisk空間。
4. 新建一個掛載點並掛載RamDisk
你已經格式化了RamDisk,現在要為它新建一個掛載點。然後就可以掛載你的RamDisk並使用它。我們將會使用/mnt/rd文件夾。
[root]# mkdir /mnt/rd
[root]# mount /dev/ram0 /mnt/rd
檢測新掛載的RamDisk
[root]# mount | grep ram0
/dev/ram0 on /mnt/rd type ext2 (rw)
[root]# df -h | grep ram0
/dev/ram0 16M 13K 16M 1% /mnt/rd
你可以用tune2fs命令查看新RamDisk的詳細信息
[root]# tune2fs -l /dev/ram0
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name: none
Last mounted on: not available
Filesystem UUID: fbb80e9a-8e7c-4bd4-b3d9-37c29813a5f5
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: filetype sparse_super
Default mount options: (none)
Filesystem state: not clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 4000
Block count: 16000
Reserved block count: 0
Free blocks: 15478
Free inodes: 3989
First block: 1
Block size: 1024
Fragment size: 1024
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 2000
Inode blocks per group: 250
Filesystem created: Mon Dec 8 14:33:57 2003
Last mount time: Mon Dec 8 14:35:39 2003
Last write time: Mon Dec 8 14:35:39 2003
Mount count: 1
Maximum mount count: 22
Last checked: Mon Dec 8 14:33:57 2003
Check interval: 15552000 (6 months)
Next check after: Sat Jun 5 14:33:57 2004
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
在我的系統中,我需要'var'用戶能夠讀寫RamDisk,所以必須修改/mnt/rd文件夾的所有者和許可權。
[root]# chown van:root /mnt/rd
[root]# chmod 0770 /mnt/rd
[root]# ls -ald /mnt/rd
drwxrwx--- 2 van root 4096 Dec 8 11:09 /mnt/rd
RamDisk掛載點的所有者和許可權要根據你的特定情況進行修改。
5. 使用RamDisk
RamDisk已經創建成功,現在,你可以像在物理硬碟分區那樣,在RamDisk上復制、移動、刪除、編輯或列出文件。
Ⅷ 如何製作u盤啟動盤安裝xp系統
製作u盤啟動盤安裝xp系統的操作步驟如下:
1、製作啟動U盤:
A、到實體店買個容量4或8G以上的品牌U盤。
B、上網搜索下載老毛桃或大白菜等啟動U盤製作工具,將U盤插入電腦運行此軟體製作成啟動U盤。
注意:在安裝系統完成後,先安裝安全軟體如360安全衛士加360殺毒或者金山毒霸之類其它安全軟體,進行全盤查殺木馬、病毒,再打好系統補丁、安裝常用軟體,並下載安裝使用一鍵還原工具進行系統備份,以備不時之需。