linux根文件系統樹製作

--------------------------------------------------------------------------------------------------------------------------------

   系統環境:Centos 6.5

   板子芯片:s3c2440

   內核版本:linux 3.0

      編譯器:arm-linux-gcc 4.5.4

          作者:Lu Zengmeng <[email protected]>

--------------------------------------------------------------------------------------------------------------------------------


1、創建根文件目錄樹

[monster@localhost ~]$ mkdir rootfs

[monster@localhost ~]$ cd rootfs/
[monster@localhost rootfs]$ mkdir -p {apps,bin,data,dev,info,proc,root,sbin,sys,tmp,var,etc/{,init.d,dropbear},mnt/{,usb,sdc,nfs,dev},usr/{,bin,sbin,lib,sharre},lib/{,modules/{,3.0.0}}}
[monster@localhost rootfs]$ tree -L 3
.
├── apps
├── bin
├── data
├── dev
├── etc
│   ├── dropbear
│   └── init.d
├── info
├── lib
│   └── modules
│       └── 3.0.0
├── mnt
│   ├── dev
│   ├── nfs
│   ├── sdc
│   └── usb
├── proc
├── root
├── sbin
├── sys
├── tmp
├── usr
│   ├── bin
│   ├── lib
│   ├── sbin
│   └── sharre
└── var

27 directories, 0 files
[monster@localhost rootfs]$ 
時靜態創建這兩個設備文件,否則在系統啓動時將提示
Waring:unable to open an initial console:
[monster@localhost rootfs]$ sudo mknod -m666 dev/null c 1 3
[monster@localhost rootfs]$ sudo mknod -m666 dev/console c 5 1
[monster@localhost rootfs]$ sudo mknod -m666 dev/ttyS0 c 4 64
[monster@localhost rootfs]$ sudo mknod -m666 dev/ttySAC0 c 4 64
[monster@localhost rootfs]$ sudo mknod dev/mtdblock0 b 31 0
[monster@localhost rootfs]$ sudo mknod dev/mtdblock1 b 31 1
[monster@localhost rootfs]$ sudo mknod dev/mtdblock2 b 31 2
[monster@localhost rootfs]$ sudo mknod dev/mtdblock3 b 31 3
[monster@localhost rootfs]$ sudo mknod dev/mtdblock4 b 31 4
[monster@localhost rootfs]$ sudo mknod dev/mtdblock5 b 31 5 
[monster@localhost rootfs]$ sudo mknod dev/mtdblock6 b 31 6 
[monster@localhost rootfs]$ sudo mknod dev/mtdblock7 b 31 7  
[monster@localhost rootfs]$ sudo mknod dev/mtdblock8 b 31 8 
[monster@localhost rootfs]$ ll dev/
總用量 0
crw-rw-rw- 1 root root  5,  1 10月 22 00:39 console
brw-r--r-- 1 root root 31,  0 10月 22 00:39 mtdblock0
brw-r--r-- 1 root root 31,  1 10月 22 00:39 mtdblock1
brw-r--r-- 1 root root 31,  2 10月 22 00:39 mtdblock2
brw-r--r-- 1 root root 31,  3 10月 22 00:39 mtdblock3
brw-r--r-- 1 root root 31,  4 10月 22 00:40 mtdblock4
brw-r--r-- 1 root root 31,  5 10月 22 00:40 mtdblock5
brw-r--r-- 1 root root 31,  6 10月 22 00:40 mtdblock6
brw-r--r-- 1 root root 31,  7 10月 22 00:40 mtdblock7
brw-r--r-- 1 root root 31,  8 10月 22 00:40 mtdblock8
crw-rw-rw- 1 root root  1,  3 10月 22 00:38 null
crw-rw-rw- 1 root root  4, 64 10月 22 00:39 ttyS0
crw-rw-rw- 1 root root  4, 64 10月 22 00:39 ttySAC0
[monster@localhost rootfs]$ ln -s /tmp var/log
[monster@localhost rootfs]$ ln -s /tmp var/run
[monster@localhost rootfs]$ ln -s /tmp var/tmp
[monster@localhost rootfs]$ ls -l var/
總用量 0
lrwxrwxrwx 1 monster monster 4 10月 22 00:42 lock -> /tmp
lrwxrwxrwx 1 monster monster 4 10月 22 00:47 log -> /tmp
lrwxrwxrwx 1 monster monster 4 10月 22 00:47 run -> /tmp
lrwxrwxrwx 1 monster monster 4 10月 22 00:47 tmp -> /tmp
[monster@localhost rootfs]$ cp -af /opt/buildroot-2012.08/arm920t/usr/arm-unknown-linux-uclibcgnueabi/lib/*so* lib/
[monster@localhost etc]$ ls
dropbear  init.d
[monster@localhost etc]$ vim inittab
# /etc/inittab
#
# Copyright (C) 2011 fulinux <[email protected]>
#
# Note: BusyBox init doesn't support runlevels. The runlevels field is
# completely ignored by BusyBox init. If you want runlevels, use sysvinit.
#
# Format for each entry: <id>:<runlevels>:<action>:<process>
#
# id == tty to run on, or empty for /dev/console.
# If specified, then /dev/$id device must exist
# runlevels == ignored, busybox doesn't support it
# action == one of sysinit, respawn, askfirst, wait, and once
# process == program to run
# Startup the system
# mount all the file systems specified in /etc/fstab
::sysinit:/bin/mount -a
#Use mdev as hotplug to auto mount USB storage or SD card
::sysinit:/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug
#Use mdev to auto generate the device node in /dev path
::sysinit:/sbin/mdev -s
#make shm, pts support
::sysinit:/bin/mkdir -p /dev/pts
::sysinit:/bin/mkdir -p /dev/shm
::sysinit:/bin/mount -t devpts devpts /dev/pts
#Mount our apps/info partition
null::wait:/bin/mount -o sync,noatime,ro -t jffs2 /dev/mtdblock6 /apps
null::wait:/bin/mount -o sync,noatime,ro -t jffs2 /dev/mtdblock7 /info
#Set hostname
null::sysinit:/bin/hostname -F /etc/hostname
#Enable console logon
null::respawn:/sbin/getty -L ttyS0 115200 vt100
# now run any rc scripts
null::wait:/etc/init.d/rcS
# system daemon
null::respawn:/sbin/syslogd -n
null::respawn:/sbin/klogd -n
# Stuff to do before rebooting
null::shutdown:/bin/umount /apps
null::shutdown:/bin/umount /info
null::shutdown:/bin/killall klogd
null::shutdown:/bin/killall syslogd
null::shutdown:/bin/umount -a -r
#null::shutdown:/sbin/swapoff -a
創建/etc/init.d/rcS 腳本
[monster@localhost etc]$ vim init.d/rcS
#!/bin/sh
# Copyright (C) 2011 fulinux <[email protected]>
# Start all init scripts in /etc/init.d
# executing them in numerical order.
#
for i in /etc/init.d/S??* ; do
$i
done
配置網卡啓動腳本

2、dev目錄下創建設備節點

因爲內核掛載完文件系統後,init 進程需要用到/dev/console 和/dev/null 這兩個設備文件來調用 mdev 構建 dev,所以必須在製作文件系統

3、var目錄下創建符號鏈接

[monster@localhost rootfs]$ ln -s /tmp var/lock

5、拷貝交叉編譯器中的動態庫到相應的目錄下

[monster@localhost rootfs]$ cp -af /opt/buildroot-2012.08/arm920t/usr/arm-unknown-linux-uclibcgnueabi/sysroot/lib/*so* lib/

6、etc/目錄下創建一些文件

創建inittab文件

[monster@localhost rootfs]$ cd etc/

[monster@localhost etc]$ vim init.d/S01_network

<span style="font-size:14px;">#!/bin/sh
ifconfig eth0 192.168.1.111 netmask 255.255.255.0 up</span>
創建支持/apps/etc 目錄下的啓動腳本
[monster@localhost etc]$ vim init.d/S99_rcsApp

<span style="font-size:14px;">#!/bin/sh
# Copyright (C) 2011 fulinux <[email protected]>
# 
# Start all init scripts in /apps/etc/init.d
# executing them in numerical order.
#
if (test -d /apps/etc/init.d)
then
for i in /apps/etc/init.d/S??* ; do
$i
done
fi</span>
修改 init.d 目錄下的文件權限
[monster@localhost etc]$ chmod 777 init.d/*
[monster@localhost etc]$ ll init.d/
總用量 12
-rwxrwxrwx 1 monster monster 179 10月 22 01:11 rcS
-rwxrwxrwx 1 monster monster  63 10月 22 01:14 S01_network
-rwxrwxrwx 1 monster monster 236 10月 22 01:16 S99_rcsApp

創建 fstab 文件

[monster@localhost etc]$ vim fstab
<span style="font-size:14px;"># /etc/fstab: static file system information.
# Copyright (C) 2011 fulinux <[email protected]>
#
#<File system> <mount pt> <type> <options> <dump> <pass>
#devpts /dev/pts devpts defaults 0 0
#/dev/root / ext2 rw,noauto 0 1
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0</span>
創建 hostname,hosts,TZ 文件
[monster@localhost etc]$ echo "root" > hostname
[monster@localhost etc]$ echo "127.0.0.1 localhost" >> hosts
[monster@localhost etc]$ echo "127.0.0.1 localhost" >> hostsecho "MST7MDT" >> TZ^C
[monster@localhost etc]$ echo "MST7MDT" >> TZ
[monster@localhost etc]$ echo "Copyright (C) 2015 luzengmeng<[email protected]>" >> issue

創建profile文件
[monster@localhost etc]$ vim profile
<span style="font-size:14px;"># /etc/profile: system-wide .profile file for the Bourne shells.
export PATH=\
/bin:\
/sbin:\
/usr/bin:\
/usr/sbin:\
/usr/local/bin:\
/apps/bin:\
/apps/tools:\
/apps/tslib/bin\
# If running interactively, then:
if [ "$PS1" ]; then
if [ "$BASH" ]; then
export PS1="[\u@\h \W]\\$ "
alias ll='/bin/ls --color=tty -laFh'
alias ls='/bin/ls --color=tty -F'
export
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;
32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.de
b=0
1;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.png=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;
35
:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:
*.d
l=01;35:*.xcf=01;35:*.xwd=01;35:';
else
if [ "`id -u`" -eq 0 ]; then
export PS1='>: '
else
export PS1='>: '
fi
fi
# System Setting
set -o vi
alias ll='ls -l'
export USER=`id -un`
export LOGNAME=$USER
export HOSTNAME=`/bin/hostname`
export HISTSIZE=1000
export HISTFILESIZE=1000
export PAGER='/bin/more '
export EDITOR='/bin/vi'
export INPUTRC=/etc/inputrc
export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
export VAR1=
export VAR2=
export VAR3=
export VAR4=
export VAR5=
export LD_LIBRARY_PATH=/lib:/usr/lib/
# QT Extendded 4.4.3 Setting
export QTDIR=/apps/qt-extended-4.4.3
export QWS_MOUSE_PROTO='TSLIB:/dev/event0'
export QWS_DISPLAY='LinuxFB:/dev/fb0'
export QWS_DISPLAY='LinuxFB:mmWidth240:mmHeight320:0'
export QWS_SIZE='240x320'
export QT_PLUGIN_PATH=$QTDIR/plugins/
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
# Touch Scree tslib Setting
export TSLIB_ROOT=/apps/tslib
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
fi;</span>
創建指定一些協議所使用的端口號文件 protocols
[monster@localhost etc]$ vim protocols
<span style="font-size:14px;"># /etc/protocols:
# $Id: protocols,v 1.1.1.1 2001/09/12 19:03:24 andersee Exp $
# 
# Internet (IP) protocols
# from: @(#)protocols 5.1 (Berkeley) 4/17/89
# Updated for NetBSD based on RFC 1340, Assigned Numbers (July 1992).
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # Internet Group Management
ggp 3 GGP # gateway-gateway protocol
ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'')
st 5 ST # ST datagram mode
tcp 6 TCP # transmission control protocol
egp 8 EGP # exterior gateway protocol
pup 12 PUP # PARC universal packet protocol
udp 17 UDP # user datagram protocol
hmp 20 HMP # host monitoring protocol
xns-idp 22 XNS-IDP # Xerox NS IDP
rdp 27 RDP # "reliable datagram" protocol
iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4
xtp 36 XTP # Xpress Tranfer Protocol
ddp 37 DDP # Datagram Delivery Protocol
idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport
rspf 73 RSPF #Radio Shortest Path First.
vmtp 81 VMTP # Versatile Message Transport
ospf 89 OSPFIGP # Open Shortest Path First IGP
ipip 94 IPIP # Yet Another IP encapsulation
encap 98 ENCAP # Yet Another IP encapsulation</span>
創建mdev.conf文件
mdev 會在/etc 目錄下找 mdev 的配置文件: mdev.conf. 如果該文件不存在,那麼在執行 mdev –s 這個命令時,
會提示找不到 mdev.conf, 這時我們可以建一個空的 mdev.conf 文件解決這個問題。 下面創建使用 mdev 自動掛載 u 盤和 SD 卡的配置/etc/mdev.conf
[monster@localhost etc]$ vim mdev.conf
<span style="font-size:14px;">sd[a-z][0-9] 0:0 0777 @(mount /dev/$MDEV /mnt/usb)
sd[a-z] 0:0 0777 $(umount /mnt/usb)
ub[a-z][0-9] 0:0 0777 @(mount /dev/$MDEV /mnt/usb)
ub[a-z] 0:0 0777 $(umount /mnt/usb)
mmcblk[0-9]p[0-9] 0:0 0777 @(mount /dev/$MDEV /mnt/sdc)
mmcblk[0-9] 0:0 0777 $(umount /mnt/sdc)</span>
創建用戶組group文件
[monster@localhost etc]$ vim group
root:x:0:root
它的格式如下:
groupname:password:gid:members
第一個字段爲用戶組名稱
第二個字段爲用戶組密碼,當爲 x 時密碼是映射到/etc/gshadow 中的,是非逆的
第三個字段爲 GID,及組號,爲正整數或 0,0 被付於了 root 用戶組;系統通常會預留一些較靠前的 GID 給系統虛擬用戶之用,每個系統預留的
GID 都不同,Fedora 預留了 500 個,所以我們添加新用戶組時是從 500 開始的。GID 的範圍由/etc/login.defs 中的 GID_MIN 和 GID_MAX 決定
第四個字段爲用戶列表,每個用戶間用逗號分隔
這裏的 password 代表組口令,很少用到。它可使原先不在這個羣組中的用戶可以通過 newgrp 命令暫時繼承該組的權限,使用 newgrp 命令時會新開一個 shell。口令的加密方式和 passwd 文件中的口令一樣,所以如果需設置組口令,要用 passwd 程序虛設一個用戶,再把該用戶password節中的加密口令拷貝到/etc/group 文件中。members 列代表組成員,我們可把需加入該組的用戶以逗號分隔添加到這裏即可。同一組的成員可繼承該組所擁有的權限。
創建用戶passwd文件
[monster@localhost etc]$ vim psswd
 root:x:0:0:root:/:/bin/sh

它的格式如下:
username:password:uid:gid:gecos:homedir:shell
第一個字段爲登錄名
第二個字段爲口令,一般被映射到 shadow 文件中
第三個字段爲 UID
第四個字段爲 GID
第五個字段爲用戶名全稱,gecos 是通用電子計算機操作系統的縮寫,是 Bell 實驗室中的一臺大型主機。
第六個字段爲用戶根目錄
第七個字段爲用戶所用 SHELL 的類型
Unix 系統最初是用明文保存密碼的,後來由於安全的考慮,採用 crypt()算法加密密碼並存放在/etc/passwd 文件。現在,由於計算機處理能力的提高,使密碼破解變得越來越容易。/etc/passwd 文件是所有合法用戶都可訪問的,大家都可互相看到密碼的加密字符串,這給系統帶來很大的安全威脅。現代的 Unix 系統使用影子密碼系統,它把密碼從/etc/pa sswd 文件中分離出來,真正的密碼保存在/etc/shadow 文件中,shadow文件只能由超級用戶訪問。這樣入侵者就不能獲得加密密碼串,用於破解。使用 shadow 密碼文件後,/etc/passwd 文件中所有帳戶的 password域的內容爲"x",如果 password 域的內容爲"*",則該帳號被停用。使用 passwd 這個程序可修改用戶的密。
創建密碼映射 shadow 文件
[monster@localhost etc]$ vim shadow
root::0:0:99999:7:::

7、在文件系統中安裝busybox

[monster@localhost ~]cd

[monster@localhost ~]$ tar -xjf busybox-1.20.2.tar.bz2 
[monster@localhost ~]$ cd busybox-1.20.2
[monster@localhost busybox-1.20.2]$ vim Makefile

#修改 CROSS_COMPILER 爲:
CROSS_COMPILE ?= /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-

[monster@localhost busybox-1.20.2]$ sudo make menuconfig

#選擇:
Busybox Settings --->
General Configuration --->
[*] Don't use /usr
Installation Options ("make install" behavior) --->
What kind of applet links to install (as soft-links) --->

(~/rootfs) BusyBox installation prefix 



[monster@localhost busybox-1.20.2]$ sudo make

編譯過程略

[monster@localhost busybox-1.20.2]$ file busybox
busybox: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped
[monster@localhost busybox-1.20.2]$ sudo make install
  ~/rootfs//bin/[ -> busybox
  ~/rootfs//bin/[[ -> busybox
  ~/rootfs//bin/add-shell -> busybox
  ~/rootfs//bin/addgroup -> busybox
  ~/rootfs//bin/adduser -> busybox
  ~/rootfs//bin/arping -> busybox
  ~/rootfs//bin/ash -> busybox

。。。。。。。。

--------------------------------------------------
You will probably need to make your busybox binary
setuid root to ensure all configured applets will
work properly.
--------------------------------------------------

[monster@localhost busybox-1.20.2]$ ls ../rootfs/
apps  bin  data  dev  etc  info  lib  mnt  proc  root  sbin  sys  tmp  usr  var

8、移植dropbear

首先編譯生成 PC 版的,在製作密鑰時用到
[monster@localhost dropbear-0.53.1]$ tar -xjf dropbear-0.53.1.tar.bz2 

[monster@localhost dropbear-0.53.1]$ cd dropbear-0.53.1

[monster@localhost dropbear-0.53.1]$ ./configure && make

生成的文件:
dropbear: ssh2 server
dropbearkey: 密鑰生成器
dropbearconvert: 可以轉換 openssh 的密鑰
dbclient: ssh2 client
[monster@localhost dropbear-0.53.1]$ ./dropbearkey -t rsa -f ~/rootfs/etc/dropbear/dropbear_rsa_host_key
Will output 1024 bit rsa secret key to '/home/monster/rootfs/etc/dropbear/dropbear_rsa_host_key'
Generating key, this may take a while...
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgmb5EKxtGdLQ2JuOPljKxFFmzdMj30lvR6EPWzCE2sQ/UV3mSOGvRq27Jo0ANmq+PDu2eLN+EYkwZDdq4svQK8+wH9KWuAnUDZHGB83tE/RwiI2PI1Xpp0/D3/RuoUs9LS8qs2LeLCUEbZlPidTliOUtN4IGqdgxarSkt/hfixHVgI8= [email protected]
Fingerprint: md5 f0:e3:2c:54:bb:d3:64:0b:e5:ab:a3:11:67:a7:84:4d
[monster@localhost dropbear-0.53.1]$ ./dropbearkey -t dss -f ~/rootfs/etc/dropbear/dropbear_dss_host_key
Will output 1024 bit dss secret key to '/home/monster/rootfs/etc/dropbear/dropbear_dss_host_key'
Generating key, this may take a while...
Public key portion is:
ssh-dss AAAAB3NzaC1kc3MAAACBAP6mfVKWysnBcBQIgTq5fziKRGHm617hi9wZctiX0t+w+CwfSCXmqCw6UMqdBZgOvQnPDPYWzpYH142X3yZ72wps52zHZvIdLbsuxiTq75w26ioEtg4wHghhb65LDGsUFqDgKGiTvvLNaUfJh3AGVZYy0+RZdQ8DuzH5kDI7jIgfAAAAFQC9kUgQA2eWPSPg6rncu0I5umOdYwAAAIAqHUDw1vKn85H40ZfqRorRMGpmWwGLB7PIc5kLX9+Rnc2uP2W1aMpav9oSsIepMdDZzIegD4iNA5KxMiatCQFbOanqfkGTuoswbH+CdJV6EFOe6ncFVBHOqYk0s7cKllGt0ED+5pIamOCPBfc8n1c/uuqOPqodx570E2dWxOExkwAAAIEA+RkSU0l07yP7rEse+7HM/dLJ0gJJs18/a8rehQAH++YZmqTOxboZ4v+6jnI+PQ8jwDjh/GCbfzPg8efc9DoNI5pw9S2ckdiln5R8Rq4GGwhqExdOo8Hv0s+A+5+n+mnNZi3vGn8lr4Q7Ger1yK6cgZ6ywTxM1UrSZn7FbNZipB0= [email protected]
Fingerprint: md5 e2:ec:7a:7d:9e:97:e1:ba:22:ac:08:82:cb:1f:a8:fc

[monster@localhost ~]$ chmod 666 rootfs/etc/dropbear/dropbear_*

編譯arm版

[monster@localhost dropbear-0.53.1]$ make distclean

[monster@localhost dropbear-0.53.1]$ ./configure CC=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc --build=i686 --host=arm-linux --disable-zlib
[monster@localhost dropbear-0.53.1]$ make

[monster@localhost dropbear-0.53.1]$ file dropbear dbclient
dropbear: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
dbclient: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

[monster@localhost dropbear-0.53.1]$ mv dbclient ssh

[monster@localhost dropbear-0.53.1]$ /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-strip dropbear
[monster@localhost dropbear-0.53.1]$ /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-strip ssh

[monster@localhost dropbear-0.53.1]$ cp dropbear ssh ../rootfs/usr/sbin/

9、在文件系統中創建啓動腳本

[monster@localhost rootfs]$ vim etc/init.d/S04_dropbear

  #!/bin/sh
 /usr/sbin/dropbear

[monster@localhost rootfs]$ chmod 777 etc/init.d/S04_dropbear 
[monster@localhost rootfs]$ ls
apps  bin  data  dev  etc  info  lib  mnt  proc  root  sbin  sys  tmp  usr  var
[monster@localhost rootfs]$ OK

發佈了29 篇原創文章 · 獲贊 11 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章