Chinaunix首页 | 论坛 | 博客
  • 博客访问: 355764
  • 博文数量: 120
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 1810
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-11 17:50
文章分类

全部博文(120)

文章存档

2008年(120)

我的朋友

分类:

2008-04-24 18:44:32

 

隐逸桃源说:

1、ramdisk是一个最小的linux rootfs系统,它包含了除内核以外的所有linux系统在引导和管理时需要的工具,包含如下目录:bin,dev,etc,home,lib,mnt,proc,sbin,usr,var。还需要有一些基本的工具:sh,ls,cp,mv……(位于/bin目录中);必要的配置文件:inittab,rc,fstab……位于(/etc目录种);必要的设备文件:/dev/tty*,/dev /console,/dev/men……(位于/dev目录中);sh,ls等工具必要的运行库:glibc。

2、首先建立一个空的ramdisk image文件:
xuxian@omap1:~$cd /home/xuxian/fsys
xuxian@omap1:~$dd if=/dev/zero of=rootfs bs=1M count=16
ramdisk image文件名为rootfs,大小为16M。
把它格式化为你需要的文件系统,比如 ext2 ,ext3等。
比如ext3 :
xuxian@omap1:~$mkfs.ext3 -m 0 -N 2000 ./rootfs
这里的-N 2000表示最大的node数为2000。因为linux的设备也是基于文件系统的,需要占用文件系统的node,如果数目建立的太少,以后可能会不够用。
然后把它mount到某个目录:
xuxian@omap1:~$mkdir ramdisk
xuxian@omap1:~$mount -t ext3 -o loop ./rootfs ./ramdisk
xuxian@omap1:~$cd ramdisk
xuxian@omap1:~$ls
xuxian@omap1:~$lost+found
通过这一步,已经得到一个空的ramdisk image文件了。

3、建立各个目录:
xuxian@omap1:~/fsys/ramdisk$mkdir dev
xuxian@omap1:~/fsys/ramdisk$mkdir proc
xuxian@omap1:~/fsys/ramdisk$mkdir etc
xuxian@omap1:~/fsys/ramdisk$mkdir sbin
xuxian@omap1:~/fsys/ramdisk$mkdir bin
xuxian@omap1:~/fsys/ramdisk$mkdir lib
xuxian@omap1:~/fsys/ramdisk$mkdir mnt
xuxian@omap1:~/fsys/ramdisk$mkdir usr
xuxian@omap1:~/fsys/ramdisk$mkdir tmp
xuxian@omap1:~/fsys/ramdisk$mkdir root
xuxian@omap1:~/fsys/ramdisk$mkdir home
xuxian@omap1:~/fsys/ramdisk$mkdir var
xuxian@omap1:~/fsys/ramdisk$mkdir usr/bin
xuxian@omap1:~/fsys/ramdisk$mkdir usr/sbin
xuxian@omap1:~/fsys/ramdisk$mkdir usr/lib

对单用户来说,home和root不是必须的。

4、/dev目录:

omap1:/home/xuxian/fsys/ramdisk/dev$mknod -m 600 console c 5 1
omap1:/home/xuxian/fsys/ramdisk/dev$mknod -m 666 tty c 5 0
omap1:/home/xuxian/fsys/ramdisk/dev$mknod -m 600 tty0 c 4 0
omap1:/home/xuxian/fsys/ramdisk/dev$mknod -m 600 ttyS0 c 4 64

也可以用一种简单的方法来创建/dev里面的文件:首先你要下载一个文件系统

omap1:/home/xuxian/fsys/ramdisk/dev$cp -dpR /home/xuxian/osk/rootfs2.6/dev/*
.
这个命令把下载的文件系统的/dev目录拷贝到ramdisk的/dev中。dp参数表示符号连接拷贝为符号连接,不拷贝连接的符号,并且拷贝源文件的所有属性。

5、/lib目录:

下面是arm-linux的动态库,可以选择一些必须的拷贝到ramdisk的lib下。
omap1:/home/iaadoa/work/crosstool/gcc-3.3.2-glibc-2.3.2/arm-linux/arm-linux/l
ib# ls
crt1.o                     libc_nonshared.a    libmcheck.a             
libnss_hesiod.so.2        librt.a
crti.o                     libcrypt-2.3.2.so   libmemusage.so          
libnss_nis-2.3.2.so       librt.so
crtn.o                     libcrypt.a          libm.so                 
libnss_nisplus-2.3.2.so   librt.so.1
gconv                      libcrypt.so         libm.so.6               
libnss_nisplus.so         libSegFault.so
gcrt1.o                    libcrypt.so.1       libnsl-2.3.2.so         
libnss_nisplus.so.2       libstdc++.a
ld-2.3.2.so                libc.so             libnsl.a                
libnss_nis.so             libstdc++.la
ld-linux.so.2              libc.so.6           libnsl.so               
libnss_nis.so.2           libstdc++.so
ldscripts                  libc.so_orig        libnsl.so.1             
libpcprofile.so           libstdc++.so.5
libanl-2.3.2.so            libdl-2.3.2.so      libnss_compat-2.3.2.so  
libpthread-0.10.so        libstdc++.so.5.0.5
libanl.a                   libdl.a             libnss_compat.so        
libpthread.a              libsupc++.a
libanl.so                  libdl.so            libnss_compat.so.2      
libpthread_nonshared.a    libsupc++.la
libanl.so.1                libdl.so.2          libnss_dns-2.3.2.so     
libpthread.so             libthread_db-1.0.so
libBrokenLocale-2.3.2.so   libg.a              libnss_dns.so           
libpthread.so.0           libthread_db.so
libBrokenLocale.a          libgcc_s.so         libnss_dns.so.2         
libpthread.so_orig        libthread_db.so.1
libBrokenLocale.so         libgcc_s.so.1       libnss_files-2.3.2.so   
libresolv-2.3.2.so        libutil-2.3.2.so
libBrokenLocale.so.1       libiberty.a         libnss_files.so         
libresolv.a               libutil.a
libbsd-compat.a            libieee.a           libnss_files.so.2       
libresolv.so              libutil.so
libc-2.3.2.so              libm-2.3.2.so       libnss_hesiod-2.3.2.so  
libresolv.so.2            libutil.so.1
libc.a                     libm.a              libnss_hesiod.so        
librt-2.3.2.so            Mcrt1.o



以下这些是必须的:

ld-2.3.2.so                libmemusage.so            libnss_nisplus.so.2
ld-linux.so.2              libm.so.6                 libnss_nis.so.2
libanl-2.3.2.so            libnsl-2.3.2.so           libpcprofile.so
libanl.so.1                libnsl.so.1               libpthread-0.10.so
libBrokenLocale-2.3.2.so   libnss_compat-2.3.2.so    libpthread.so.0
libBrokenLocale.so.1       libnss_compat.so.2        libresolv-2.3.2.so
libc-2.3.2.so              libnss_dns-2.3.2.so       libresolv.so.2
libcrypt-2.3.2.so          libnss_dns.so.2           librt-2.3.2.so
libcrypt.so.1              libnss_files-2.3.2.so     librt.so.1
libc.so.6                  libnss_files.so.2         libSegFault.so
libdl-2.3.2.so             libnss_hesiod-2.3.2.so    libthread_db-1.0.so
libdl.so.2                 libnss_hesiod.so.2        libthread_db.so.1
libgcc_s.so.1              libnss_nis-2.3.2.so       libutil-2.3.2.so
libm-2.3.2.so              libnss_nisplus-2.3.2.so   libutil.so.1

拷贝到ramdisk的lib目录下就行了。

6、安装busybox:

下载busybox-1.01
xuxian@omap1:~/osk$tar -xjvf busybox-1.01.tar.bz2
xuxian@omap1:~/osk/busybox-1.01$make TARGET_ARCH=arm CROSS=arm-linux-
PREFIX=/home/xuxian/fsys/ramdisk menuconfig
xuxian@omap1:~/osk/busybox-1.01$make TARGET_ARCH=arm CROSS=arm-linux-
PREFIX=/home/xuxian/fsys/ramdisk dep
xuxian@omap1:~/osk/busybox-1.01$make TARGET_ARCH=arm CROSS=arm-linux-
PREFIX=/home/xuxian/fsys/ramdisk
xuxian@omap1:~/osk/busybox-1.01$make TARGET_ARCH=arm CROSS=arm-linux-
PREFIX=/home/xuxian/fsys/ramdisk inatall
xuxian@omap1:~/fsys/ramdisk/bin$ls
addgroup   chown      dmesg    gzip       login   netstat   sed     true
adduser    cp         echo     hostname   ls      pidof     sh      umount
ash        date       egrep    ip         mkdir   ping      sleep   uname
busybox    dd         false    ipaddr     mknod   ps        su      usleep
cat        delgroup   fgrep    iproute    more    pwd       sync    vi
chgrp      deluser    grep     kill       mount   rm        tar     zcat
chmod      df         gunzip   ln         mv      rmdir     touch
这些就是可用的命令。

7、/etc下系统配置文件说明:

xuxian@omap1:~/fsys/ramdisk/etc/$vi inittab
#
# This is run first except when booting in single-user mode
#指定初始化文件

::sysinit:/etc/init.d/rcS

# /bin/sh
#
# Start an "askfirst" shell on the console (whatever that may be)
#启动时执行的shell

::askfirst:-/bin/sh

# Stuff to do when restarting the init process
#重启动作

::restart:/sbin/init

# Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot

#关机时动作,卸载所有文件系统

::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a

再来编写rcS脚本:

xuxian@omap1:~/fsys/ramdisk/etc/$mkdir init.d

xuxian@omap1:~/fsys/ramdisk/etc/$cd init.d

xuxian@omap1:~/fsys/ramdisk/etc/init.d$vi rcS
脚本如下:

#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin

HOSTNAME=OMAP5912OSK
hostname $HOSTNAME
echo ""
echo "******************************************"
echo "Starting System Init for $HOSTNAME"
echo "******************************************"

# goto the init.d directory
cd /etc/init.d

# Mount the default file systems
mount -a # Mount the default file systems

# Configure network
#/sbin/ifconfig lo 127.0.0.1 netmask 255.0.0.0 broadcast 127.255.255.255
#/sbin/ifconfig eth0 128.247.75.151 netmask 255.255.254.0 broadcast
128.247.75.255
#/sbin/route add default gw 128.247.74.1 eth0

然后时rcS2脚本:

xuxian@omap1:~/fsys/ramdisk/etc/init.d$vi rcS2

#!/bin/sh
/bin/mount -n -o remount,rw /

/bin/mount -a
echo Starting Network
#modprobe i2c-core
#modprobe i2c-algo-bit
#modprobe i2c-omap1510
#modprobe soundcore
#modprobe omap-audio
#modprobe omap1510-aic23

/sbin/ifconfig lo 127.0.0.1 netmask 255.0.0.0 broadcast 127.255.255.255
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
/sbin/ifconfig eth0 10.1.3.3 netmask 255.255.0.0 broadcast 10.1.255.255
/sbin/route add default gw 10.1.0.100 eth0
~
~

最后时编写fstab脚本,我的很简单:

xuxian@omap1:~/fsys/ramdisk/etc$vi fstab
proc             /proc            proc     defaults         0        0

8、用nfs检查根文件系统:

做完以上这些就可以用nfs来启动目标系统了。编辑/etc/exports加入/home/xuxian/fsy
s/ramdisk 192.168.4.190(rw,sync,no_root_squash,no_all_squash)其中192.168.4.19
0是目标板的ip。
连接目标板用tftp或者串口线下载u-boot和kernel,在u-boot的环境变量中加入:seten
v bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs
nfsroot=192.168.0.11:/home/xuxian/fsys/ramdisk,nolock mem=30M其中192.168.0.11
是主机ip,/home/xuxian/fsys/ramdisk为ramdisk目录。

9、通过烧写flash检查文件系统

最后如果想生成image文件烧到flash中可以执行如下命令:

xuxian@omap1:~/fsys$umount ramdisk
xuxian@omap1:~/fsys$gzip -v9 rootfs
这样就生成了rootfs.gz文件,可以连同u-boot,kernel一起烧到flash中了。

儒雅说:

# vi mkinitrd.sh -- 脚本好
----------------------------------------

#!/bin/bash

#------------- make file system
cd /tftpboot
rm -fr ramdisk &> /dev/null
umount /mnt    &> /dev/null
dd if=/dev/zero of=ramdisk bs=1k count=8192 &>/dev/null
mkfs.ext2 -F ramdisk       &> /dev/null
mount -o loop ramdisk /mnt &> /dev/null

#------------- make directory
cd /mnt
rm -r *
mkdir lib dev proc etc mnt usr bin sbin tmp sys


#------------- cp lib
cd /usr/local/arm/3.4.1/arm-linux/lib
for file in libc libcrypt libdl libm libpthread libresolv libutil
do
    cp $file-*.so /mnt/lib
    cp -d $file.so.[*0-9] /mnt/lib
done
cp -d ld*.so* /mnt/lib

#------------- cp busybox
cd /home/zxl/s3c2410/source/busybox/busybox-1.7.0
cp -rf _install/* /mnt/
cp -r examples/bootfloppy/etc/init.d/ /mnt/etc/


#------------- edit /etc/init.d/rcS (0)
echo "echo /sbin/mdev > /proc/sys/kernel/hotplug" >>/mnt/etc/init.d/rcS
echo "/sbin/mdev -s"                              >>/mnt/etc/init.d/rcS

#------------- make device file     (1)
cd /mnt/dev
mknod -m 660 console c 5 1
mknod -m 660 null    c 1 3


#------------- make etc file
cat > /mnt/etc/inittab << EOF
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/msh       
::restart:/sbin/init      
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r   
::shutdown:/sbin/swapoff -a   
EOF

cat > /mnt/etc/fstab << EOF
proc    /proc    proc    defaults    0    0
sysfs   /sys     sysfs   defaults    0    0
EOF


#------------- make zip file
cd /
umount /mnt
cd /tftpboot
rm -fr ramdisk.gz &>/dev/null
gzip -9 ramdisk


(0) 配置mdev
(1) 由于2.6.19中已经不包含devfs,所以还需要在root filesystem中配置console和null设备,否则将不能进入交互界面(不会出现提示符#)

# vi mkinitrd.sh -- 脚本好
----------------------------------------

#!/bin/bash

#------------- make file system
cd /tftpboot
rm -fr ramdisk &> /dev/null
umount /mnt    &> /dev/null
dd if=/dev/zero of=ramdisk bs=1k count=8192 &>/dev/null
mkfs.ext2 -F ramdisk       &> /dev/null
mount -o loop ramdisk /mnt &> /dev/null

#------------- make directory
cd /mnt
rm -r *
mkdir lib dev proc etc mnt usr bin sbin tmp sys


#------------- cp lib
cd /usr/local/arm/3.4.1/arm-linux/lib
for file in libc libcrypt libdl libm libpthread libresolv libutil
do
    cp $file-*.so /mnt/lib
    cp -d $file.so.[*0-9] /mnt/lib
done
cp -d ld*.so* /mnt/lib

#------------- cp busybox
cd /home/zxl/s3c2410/source/busybox/busybox-1.7.0
cp -rf _install/* /mnt/
cp -r examples/bootfloppy/etc/init.d/ /mnt/etc/


#------------- edit /etc/init.d/rcS (0)
echo "echo /sbin/mdev > /proc/sys/kernel/hotplug" >>/mnt/etc/init.d/rcS
echo "/sbin/mdev -s"                              >>/mnt/etc/init.d/rcS

#------------- make device file     (1)
cd /mnt/dev
mknod -m 660 console c 5 1
mknod -m 660 null    c 1 3


#------------- make etc file
cat > /mnt/etc/inittab << EOF
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/msh       
::restart:/sbin/init      
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r   
::shutdown:/sbin/swapoff -a   
EOF

cat > /mnt/etc/fstab << EOF
proc    /proc    proc    defaults    0    0
sysfs   /sys     sysfs   defaults    0    0
EOF


#------------- make zip file
cd /
umount /mnt
cd /tftpboot
rm -fr ramdisk.gz &>/dev/null
gzip -9 ramdisk


(0) 配置mdev
(1) 由于2.6.19中已经不包含devfs,所以还需要在root filesystem中配置console和null设备,否则将不能进入交互界面(不会出现提示符#)

我也说:

内容有时间更新......

利用busybox制作ramdisk
(1)下载busybox,可以从
上下载到最新版本。
(2)解压压缩文件,进入busybox目录。
(3)配置busybox,make menuconfig。
    ①Busybox Settings(busybox配置组)
      Busybox Settings --->
           General Configuration --->                                                    
           Build Options --->
              [*] Build BusyBox as a static binary (no shared libs)                              
              [ ] Build shared libbusybox                                                        
           Debugging Options --->                                                        
           Installation Options --->
              [*] Don't use /usr                                                                 
                  Applets links (as soft-links) --->                                            
              (./_install) BusyBox installation prefix                                                                                                
           Busybox Library Tuning --->

[*]代表必选项:
    [*] Build BusyBox as a static binary (no shared libs)表示应用静态库,
    在嵌入式工作时一般首选,它不应用动态库,可以节省空间,在创建的ramdisk
    的lib目录中可以加入动态库支持;
    [ ] Build shared libbusybox 表示应用动态库,这样会耗费空间。
    [*] Don't use /usr这个选项也一定要选,否则make install 后busybox将安装
    在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install
    后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向他的链接.

   
   ② --- Applets (命令配置组)
      Archival Utilities ---> 文档选项 例如:压缩文件tar、gzip等命令;                                                    
       Coreutils ---> 常用命令选项 一般/bin下的命令的选择点;
           [*]   Allow use of color to identify file types                                    
            [*]   Produce colored ls output by default
            这两个可选,在控制台将会根据文件的类型有颜色区分与提示;                                                                                                    
       Console Utilities ---> 控制台选项 例如:清屏命令clear等;                                                  
       Debian Utilities ---> Debian命令选项组;                                                        
       Editors ---> 文档编辑选项组,例如:vi编辑器;                                                                 
       Finding Utilities ---> 查找选项组;                                                       
       Init Utilities ---> 系统初始化选项;                                           
       Login/Password Management Utilities ---> 登录管理;                                     
       Linux Ext2 FS Progs ---> Ext2 文件系统选项 例如:longin、passwd;                                                     
       Linux Module Utilities ---> 模块选项,例如:lsmod、insmod;                                                 
       Linux System Utilities ---> 系统选项,例如:mount、dmesg;                                                 
       Miscellaneous Utilities ---> 其他命令选项;                                                 
       Networking Utilities ---> 网络功能选项,例如:ifconfig;                                                   
       Process Utilities ---> 进程选项;                                                      
       Shells ---> Shell选项;
              Choose your default shell (msh) ---> 选择默认的shell
                                        ( ) ash                                 
                                             ( ) hush                                
                                             (X) msh                                 
                                             ( ) none                                                                             
       System Logging Utilities ---> 系统日志选项;                                                
       Runit Utilities ---> 即刻运行选项;
       ipsvd utilities ---> ip服务进程;
    ③保存与载入配置文件选项组
      Load an Alternate Configuration File                                            
      Save Configuration to an Alternate File
     
(4)配置busybox后保存配置,然后修改Makefile文件,在文件中找到这一行
CROSS_COMPILE   ?=,这一行用于指定交叉编译器的位置与类型,修改为系统中
交叉编译器的绝对路径;例如本系统在交叉编译器/eldk/usr/bin/中,
   CROSS_COMPILE   ?=/eldk/usr/bin/ppc_8xx-

(5)如果有ulibc,跳过这一步。
修改busybox目录下面applets/applets.c,注释掉下面的内容:
#if ENABLE_STATIC && defined(__GLIBC__) && !defined(__UCLIBC__)
#warning Static linking against glibc produces buggy executables
#warning (glibc does not cope well with ld --gc-sections).
   #warning See sources.redhat.com/bugzilla/show_bug.cgi?id=3400
   #warning Note that glibc is unsuitable for static linking anyway.
   #warning If you still want to do it, remove -Wl,--gc-sections
   #warning from scripts/trylink and remove this warning.
   #error Aborting compilation.
   #endif
   这些内容用于提示你用ulibc以减少空间消耗,而不是用glibc。

(6)编译安装:
[guo@localhost busybox]$ make
[guo@localhost busybox]$ make install
编译安装后会在busybox目录下生成_install目录,它包括bin、sbin、linuxrc:
[guo@localhost _install]$ ls
bin linuxrc sbin

(7)建立ramdisk文件系统
[guo@localhost ~]$ dd if=/dev/zero of=rootfs bs=1M count=5
用dd命令建立了一个名为rootfs的ramdisk基本文件;
[guo@localhost ~]$ mke2fs -m 0 -N 3500 rootfs
在rootfs上面建立ext2文件系统。
[guo@localhost ~]$ mount -o loop rootfs /mnt/ramdisk
把rootfs文件系统挂载到/mnt/ramdisk目录下面(可随意指定一个目录);
[guo@localhost busybox]$ cp -dpR ./_install/* /mnt/ramdisk
把busybox目录下面_install目录下面的所有文件拷贝到/mnt/ramdisk下面;
[guo@localhost ~]$ cd /mnt/ramdisk
转到/mnt/ramdisk目录进行操作;
[guo@localhost ~]$ mkdir dev proc etc mnt usr lib
建立基本文件目录;

下面拷贝各要目录的内容:
①dev目录
   直接从本机/dev目录下面拷贝所需内容即可;
   以下是我认为需要的设备名:
console hda12 hda6     mouse ptyp6 ptypf ram15 ram9   tty15 ttyp3 ttypc   ttyS13 ttyS7
fb       hda13 hda7     null   ptyp7 ram    ram16 rtc    tty16 ttyp4 ttypd   ttyS14 ttyS8
fb0      hda14 hda8     psaux ptyp8 ram0   ram2   tty0   tty6   ttyp5 ttype   ttyS15 ttyS9
fd0      hda15 hda9     ptyp0 ptyp9 ram1   ram3   tty1   tty7   ttyp6 ttypf   ttyS16 zero
full     hda16 initctl ptyp1 ptypa ram10 ram4   tty10 tty8   ttyp7 ttyS0   ttyS2   tty5
hda      hda2   kmem     ptyp2 ptypb ram11 ram5   tty11 tty9   ttyp8 ttyS1   ttyS3   tty4
hda1     hda3   loop0    ptyp3 ptypc ram12 ram6   tty12 ttyp0 ttyp9 ttyS10 ttyS4   tty3
hda10    hda4   loop1    ptyp4 ptypd ram13 ram7   tty13 ttyp1 ttypa ttyS11 ttyS5   tty2
hda11    hda5   mem      ptyp5 ptype ram14 ram8   tty14 ttyp2 ttypb ttyS12 ttyS6   tty

②etc目录
   以下是我认为需要的设备名:
busybox.conf    inetd.conf inittab mtab           profile      xinetd.d
fstab           init.d      motd     nsswitch.conf xinetd.conf

可能根据busybox的配置不同会有不同要求,但有些是必须的:
inittab、init.d、fstab、profile。其中init.d、fstab、profile可从这里拷贝:
[guo@localhost busybox]$ cp -R examples/bootflopyp/etc/init.d /mnt/ramdisk/etc

(8)卸载
   umount /mnt/ramdisk
  
(9)生成压缩文件
[guo@localhost ~]# gzip -v9 rootfs
rootfs: 65.1% -- replaced with rootfs.gz

(10)在开发板上测试
①[guo@localhost ~]# /eldk/usr/bin/mkimage -A PPC -O linux -T ramdisk -C gzip -n dog_en -d rootfs.gz /tftpboot/rootfs
   利用该命令在/tftpboot下面生成映像文件
②在开发板上跑程序
APC2004=>tftp 下载内存地址 映像文件
APC2004=>bootm 内核地址     ramdisk地址

(11)小结
根据需求不同则配置busybox的情况不同,所以系统所需选择的设备文件、
命令文件也不同。
/bin:linux必需命令目录;
/sbin:系统常用命令目录;
/dev:设备文件目录;
/etc:系统启动与运行所需文件目录;
/proc:proc文件系统mount目录;
/mnt:用户mount目录;
/lib:库文件存放处;
/usr:其他工具与用户程序的存放处。  


阅读(1424) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~