制作根文件系統(tǒng)(PPT課件)_第1頁
制作根文件系統(tǒng)(PPT課件)_第2頁
制作根文件系統(tǒng)(PPT課件)_第3頁
制作根文件系統(tǒng)(PPT課件)_第4頁
制作根文件系統(tǒng)(PPT課件)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)制作根文件系統(tǒng)制作根文件系統(tǒng)高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)根文件系統(tǒng)構(gòu)建根文件系統(tǒng)的步驟BusyBox簡介配置編譯BusyBoxBusybox init啟動(dòng)過程分析構(gòu)建根文件系統(tǒng)的其他部分文件系統(tǒng)特性主要內(nèi)容高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)根文件系統(tǒng):根文件系統(tǒng)(root filesystem)是存放運(yùn)行、維護(hù)系統(tǒng)所必須的各種工具軟件、庫文件、腳本、配置文件和其他特殊文件的地方,也可以安裝各種軟件包。文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn) 【Filesystem Hierarchy

2、Standard (FHS)】Linux和UNIX的文件系統(tǒng)是一個(gè)以“/ “為根的階層式的樹狀文件結(jié)構(gòu),/ 因此被稱為根目錄。在早期的UNIX系統(tǒng)中,各個(gè)廠家各自定義了自己的UNIX系統(tǒng)的文件系統(tǒng)構(gòu)成,比較混亂。為了避免在Linux也產(chǎn)生同樣的問題,在Linux面世不久,就開始了對(duì)Linux文件系統(tǒng)進(jìn)行標(biāo)準(zhǔn)化的活動(dòng)。FHS標(biāo)準(zhǔn)定義了如下的內(nèi)容。1. 文件系統(tǒng)中每個(gè)區(qū)域的用途2. 所需要的最小構(gòu)成的文件和目錄提高軟件的可移植性根文件系統(tǒng)高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)根文件系統(tǒng)目錄目錄內(nèi)容內(nèi)容/bin可執(zhí)行程序/dev塊、字符設(shè)備節(jié)點(diǎn)文件/etc主要配置文件和初始

3、化執(zhí)行文件/lib 基本的庫文件, 茹:C 庫,和內(nèi)核模塊(modules)/mnt掛載點(diǎn),臨時(shí)掛載文件系統(tǒng)用/opt附加的軟件包/proc虛擬文件系統(tǒng),用于內(nèi)核和進(jìn)程通訊/sbin基本的系統(tǒng)管理程序/tmp臨時(shí)文件目錄/usr更多的用戶程序,包括X server/sys虛擬文件系統(tǒng) sysfs 掛載點(diǎn)/var可變信息儲(chǔ)存,如log等高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)程序文件目錄/bin: 普通用戶和root用戶都能執(zhí)行的基本程序 ping, mknod, mount, tar, grep, gzip, etc/sbin: root用戶能執(zhí)行的基本程序 int,

4、insmod, route, mkfs, rmmod, ifconfig/usr/bin: 更多非必須的用戶程序 autorun, bibtex, latex, biff, ftp, wc, whereis, whoami/usr/sbin: 更多非必須的root工具程序 automount, httpd, in.telnetd, in.talkd, sendmail根文件系統(tǒng)高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)配置基本的linux命令(嵌入式linux通過busybox制作)cat, chmod, chown, cp, chroot, copi, date, dd

5、, df, dmesg, dos2unix, du, echo, env, expr, find, grep, gunzip, gzip, halt, id, ifconfig, init, insmod等等配置用戶自己的應(yīng)用桌面管理器等等根文件系統(tǒng)高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)庫文件目錄/lib: 系統(tǒng)和運(yùn)行基本命令時(shí)需要的動(dòng)態(tài)庫文件/usr/lib:所有的其他庫/usr/lib/xxx: 一些工具包的私有庫如:/usr/lib/perl5根文件系統(tǒng)高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)Linux 設(shè)備文件Linux 系統(tǒng)中所有的對(duì)

6、象(包括設(shè)備)都是以文件的形式體現(xiàn)的Linux系統(tǒng)中,所有的設(shè)備文件(如:設(shè)備節(jié)點(diǎn)),通常放到 /dev下嵌入式系統(tǒng)中只需要?jiǎng)?chuàng)建必須的設(shè)備節(jié)點(diǎn)即可根文件系統(tǒng)高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)字符設(shè)備ls l /dev/ “c” 指明該設(shè)備節(jié)點(diǎn)是字符設(shè)備crw-rw- 1 root uucp 4, 64 Feb 23 2004 /dev/ttyS0crw-w- 1 jdoe tty 136, 1 Feb 23 2004 /dev/pts/1crw- 1 root root 13, 32 Feb 23 2004 /dev/input/mouse0crw-rw-rw 1

7、 root root 1, 3 Feb 23 2004 /dev/null典型設(shè)備keyboards, mice, parallel port, IrDA, Bluetooth port, consoles, terminals, sound, video.根文件系統(tǒng)高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)塊設(shè)備“b” 指明該設(shè)備節(jié)點(diǎn)是塊設(shè)備 (ls -l)brw-rw- 1 root disk 3, 1 Feb 23 2004 hda1brw-rw- 1 jdoe floppy 2, 0 Feb 23 2004 fd0brw-rw- 1 root disk 7, 0

8、Feb 23 2004 loop0brw-rw- 1 root disk 1, 1 Feb 23 2004 ram1brw- 1 root root 8, 1 Feb 23 2004 sda1典型塊設(shè)備磁盤, ramdisk,SD卡,U盤等等根文件系統(tǒng)高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)設(shè)備的主設(shè)備號(hào)次設(shè)備號(hào)Linux系統(tǒng)是通過主設(shè)備號(hào)和次設(shè)備號(hào)來區(qū)分設(shè)備的主設(shè)備號(hào): (major) 內(nèi)核用來區(qū)分哪類設(shè)備次設(shè)備號(hào): (minor) 區(qū)分某類設(shè)備中的哪個(gè)設(shè)備內(nèi)核中的相關(guān)文檔 Documentation/devices.txt根文件系統(tǒng)高端IT就業(yè)培訓(xùn)專家www.3g-

9、華清遠(yuǎn)見教育集團(tuán)創(chuàng)建設(shè)備節(jié)點(diǎn)創(chuàng)建設(shè)備文件的一般語法:$ mknod /dev/ c|b 例如:$ mknod /dev/ttySAC0 c 4 64$ mknod /dev/hda1 b 3 1基本設(shè)備節(jié)點(diǎn)(見下表)根文件系統(tǒng)高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)根文件系統(tǒng)高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)使用不同的文件目錄層次結(jié)構(gòu)?FHS規(guī)定了制定根文件系統(tǒng)的規(guī)則 通常大多少應(yīng)用程序和發(fā)布依賴這些規(guī)則,但這些規(guī)則不是內(nèi)核強(qiáng)制的在嵌入式Linux系統(tǒng)中,你可以構(gòu)建一個(gè)完全不同的根目錄層次結(jié)構(gòu) 相應(yīng)的AP配置需要適當(dāng)調(diào)整建議遵

10、循FHS來構(gòu)建根文件系統(tǒng)根文件系統(tǒng)高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)采用Busybox創(chuàng)建基本命令創(chuàng)建基本的目錄 /lib /etc /var /tmp /dev /sys /proc等添加glibc基本動(dòng)態(tài)庫創(chuàng)建基本的設(shè)備節(jié)點(diǎn)添加啟動(dòng)配置和腳本程序 /etc/inittab /etc/fstab /etc/init.d/rcS測試根文件系統(tǒng)制作根文件系統(tǒng)鏡像構(gòu)建根文件系統(tǒng)的步驟高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)BusyBox 項(xiàng)目是由Bruce Perens in 在1996創(chuàng)建的http:/ 是在 GNU GPL 許可協(xié)議下發(fā)行的

11、開源軟件享有“嵌入式Linux的瑞士軍刀”美譽(yù),Erik Andersen先生維護(hù);Busybox是一個(gè)UNIX系統(tǒng)工具集,它將很多普通的UNIX工具集成到一個(gè)很小的可執(zhí)行文件中,為普通用戶提供大多數(shù)常用的命令;BusyBox維護(hù)的主要指令包括 cat, chmod, chown, cp, chroot, copi, date, dd, df, dmesg, dos2unix, du, echo, env, expr, find, grep, gunzip, gzip, halt, id, ifconfig, init, insmod, etcBusyBoxBusyBox簡介高端IT就業(yè)培訓(xùn)專

12、家華清遠(yuǎn)見教育集團(tuán)獲取源碼$ wget -c http:/ tar -jxvf busybox-1.23.2.tar.bz2$ cd busybox-1.23.2/配置$ make menuconfig配置編譯BusyBoxBusyBox高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)配置編譯BusyBoxBusyBox高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)Busybox Settings -Build Options - Build BusyBox as a static binary (no shared libs) (

13、NEW)(arm-none-linux-gnueabi-) Cross Compiler prefixInstallation Options (make install behavior) -(/nfs/rootfs) BusyBox installation prefixBusybox Library Tuning -* Username completion* Fancy shell prompts配置編譯BusyBoxBusyBox高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)Build BusyBox as a static binary沒選:表示Busybox需要

14、共享庫的支持才能運(yùn)行Cross Compiler prefix:用于指定交叉編譯工具的前綴BusyBox installation prefix:用于指定Busybox的安裝目錄Username completion、Fancy shell prompts:命令行提示符顯示用戶名和主機(jī)名配置編譯BusyBoxBusyBox高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)安裝$ make install$ ls /nfs/rootfsbin linuxrc sbin usr配置編譯BusyBoxBusyBox高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)Busy

15、boxBusybox initinit啟動(dòng)過程分析高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)上面的init程序可以通過內(nèi)核啟動(dòng)參數(shù)bootargs的init來指定。通常是init=/linuxrc。BusyBox的這個(gè)init程序主要進(jìn)行以下的工作:為init進(jìn)程設(shè)置信號(hào)處理進(jìn)程。對(duì)控制臺(tái)進(jìn)行初始化。解析inittab文件即/etc/inittab。在默認(rèn)情況下,Busybox會(huì)運(yùn)行系統(tǒng)初始化腳本/etc/init.d/rcS。運(yùn)行導(dǎo)致init暫停的inttab命令(動(dòng)作類型wait)。運(yùn)行僅執(zhí)行一次的inittab命令(動(dòng)作類型once)。循環(huán)運(yùn)行: 1)運(yùn)行 init

16、tab中所有action 為 respawn 的命令 2)運(yùn)行 inittab中所有action 為 askfirst的命令BusyboxBusybox initinit啟動(dòng)過程分析高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)/etc/inittab格式id:runlevels:action:processid:ID 意義對(duì)BusyBox init 和 System V init 是不同的,此處ID指明程序的控制tty,如果程序不需要交互, 則ID為空runlevels:BusyBox init 不支持runlevel, 將被忽略process:將執(zhí)行的命令和命令的命令行參

17、數(shù)action:動(dòng)作類型,如下。構(gòu)建根文件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)sysinit:為init提供初始化命令行的路徑。respawn:在相應(yīng)的進(jìn)程結(jié)束時(shí)就重新啟動(dòng)。askfirst:類似于respawn,主要用途是減少系統(tǒng)上執(zhí)行的終端應(yīng)用程序的數(shù)量,會(huì)在控制臺(tái)上顯示“Please presss Enter to active this console”的信息,并在系統(tǒng)重新啟動(dòng)進(jìn)程之前等待用戶按下“Enter”鍵。wait:wait動(dòng)作會(huì)通知init必須等到相應(yīng)的進(jìn)程執(zhí)行完之后才能繼續(xù)執(zhí)行其他的動(dòng)作。once:進(jìn)程只執(zhí)行一次,而且不會(huì)等待他完成

18、。ctrlaltdel:當(dāng)按下Ctrl-Alt-Delete組合鍵時(shí)運(yùn)行的進(jìn)程。shutdown:當(dāng)系統(tǒng)關(guān)機(jī)時(shí)運(yùn)行的進(jìn)程。restart:當(dāng)init進(jìn)程重新啟動(dòng)的時(shí)候執(zhí)行的進(jìn)程,事實(shí)上就是init本身。構(gòu)建根文件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)# /etc/inittab:sysinit:/etc/init.d/rcS:askfirst:-/bin/login:ctrlaltdel:/sbin/reboot:shutdown:/sbin/swapoff -a:shutdown:/bin/umount -a -r:restart:/sbin/init

19、構(gòu)建根文件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán):sysinit:/etc/init.d/rcS:表示啟動(dòng)時(shí)系統(tǒng)執(zhí)行的配置初始化腳本路徑為/etc/init.d/rcS。:askfirst:-/bin/login:表示初始化完成后將循環(huán)執(zhí)行/bin/login程序,但是在執(zhí)行該程序前,首先打印“Please press Enter to activate this console.”,當(dāng)用戶按下Enter鍵后程序才會(huì)被執(zhí)行,程序路徑前面的“-”表示使用的shell是一個(gè)登錄shell。:ctrlaltdel:/sbin/reboot:表示當(dāng)用戶按下ctr

20、l+alt+del組合鍵后,將執(zhí)行/sbin/reboot程序。另外shutdown和restart三行表示系統(tǒng)關(guān)機(jī)前要執(zhí)行的程序和init進(jìn)程重啟要執(zhí)行的程序。構(gòu)建根文件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)/etc/ init.d/rcS#!/bin/shmount amkdir /dev/ptsmount -t devpts devpts /dev/ptsecho /sbin/mdev /proc/sys/kernel/hotplugmdev shostname -F /etc/hostname構(gòu)建根文件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家www.3

21、華清遠(yuǎn)見教育集團(tuán)這個(gè)腳本文件執(zhí)行五個(gè)操作,首先根據(jù)/etc/fstab文件的內(nèi)容掛載其他的文件系統(tǒng);其次創(chuàng)建了/dev/pts目錄,并將devpts文件系統(tǒng)掛載到該目錄,用于遠(yuǎn)程登錄程序的偽終端設(shè)備的動(dòng)態(tài)創(chuàng)建;接下來指定內(nèi)核發(fā)生熱插拔事件后調(diào)用的應(yīng)用程序路徑為/sbin/mdev;接下來運(yùn)行一次mdev程序,掃描內(nèi)核啟動(dòng)過程中添加的設(shè)備并自動(dòng)創(chuàng)建設(shè)備文件,mdev也會(huì)創(chuàng)建一些默認(rèn)的設(shè)備文件,如果覺得比較多且無用的話,可以通過/etc/mdev.conf來配置;最后指定從/etc/hostname文件中去獲取主機(jī)名。構(gòu)建根文件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家www.3g-ed

22、華清遠(yuǎn)見教育集團(tuán)/etc/fstabproc /proc proc defaults 0 0none /tmp tmpfs defaults 0 0none /dev tmpfs defaults 0 0sysfs /sys sysfs defaults 0 0該文件指定了要掛載其他所有的文件系統(tǒng)。文件第一列指定了文件系統(tǒng)所在的設(shè)備名;第二列指定了掛載點(diǎn);第三列指定了文件系統(tǒng)類型;第四列指定了掛載選項(xiàng);第五列指定是否要備份,0為不備份,1為備份;第六列指定了fsck程序以什么順序檢查文件系統(tǒng),0為不檢查,1或者2為要檢查, 如果是根分區(qū)要設(shè)為1,其他分區(qū)只能是2。構(gòu)建根文件系統(tǒng)的其他

23、部分高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)/etc/group格式:group_name:passwd:GID:user_listgroup_name:用戶組名稱;passwd:用戶組密碼,為x表示無密碼或密碼在/etc/gshadow文件中;GID:用戶組ID;user_list:屬于該組的用戶列表,存在多個(gè)用戶則用逗號(hào)分隔。按照上面的描述,添加的etc/group文件如下。root:x:0:root構(gòu)建根文件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)/etc/passwd用戶密碼配置文件的有七個(gè)字段,各字段的含義如下。第一字段:

24、用戶名;第二字段:用戶密碼,但實(shí)際的密碼是保存在/etc/shadow中的;第三字段:用戶ID;第四字段:用戶組ID;第五字段:用戶詳細(xì)信息;第六字段:主目錄;第七字段:登錄后使用的shell;下面的文件有一個(gè)root用戶,主目錄為/root,登錄的shell是/bin/sh。root:x:0:0:root:/root:/bin/sh構(gòu)建根文件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)/etc/shadowshadow配置文件是用戶密碼配置文件的一個(gè)影子文件,用于保存真正的密碼。其格式比較復(fù)雜,總共有九個(gè)字段,各字段的含義如下。第一字段:用戶名稱;第二字段:

25、經(jīng)過加密的密碼字段;第三字段:最近更動(dòng)密碼的日期;第四字段:密碼不可被更動(dòng)的天數(shù);第五字段:密碼需要重新變更的天數(shù);第六字段:密碼需要變更期限前的警告期限;第七字段:密碼過期的恕限時(shí)間,即密碼過期后,還剩多少天可以使用該密碼;第八字段:帳號(hào)失效日期;第九字段:保留。構(gòu)建根文件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)該文件通常不是直接編寫的,可以從任一臺(tái)Linux主機(jī)上拷貝該文件,然后保留想要的用戶,用戶的初始密碼即為Linux主機(jī)上相應(yīng)用戶的密碼。下面的文件有一個(gè)root用戶,密碼為空。root:BcPgSBqZz80dw:0:0:99999:7:構(gòu)建根文

26、件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)/etc/hostname/etc/hostname文件用于指定主機(jī)名,該文件的內(nèi)容可以根據(jù)需要設(shè)置一個(gè)自己喜歡的主機(jī)名。如果要將主機(jī)名設(shè)為“fs4412”,則該文件的內(nèi)容如下。fs4412構(gòu)建根文件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)/etc/profile該文件是一個(gè)系統(tǒng)級(jí)的環(huán)境變量和啟動(dòng)程序配置文件,用于用戶登錄后的一些設(shè)置。該文件的內(nèi)容比較隨意,但主要包含一些常用環(huán)境變量的賦值及導(dǎo)出。下面給出一個(gè)該文件的示例。LD_LIBRARY_PATH=/lib:/usr/li

27、bexport LD_LIBRARY_PAHTPATH=/bin:/sbin:/usr/bin:/usr:/sbinexport PATHexport PS1=e32muh Wa$e00;37m 構(gòu)建根文件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)文件中LD_LIBRARY_PATH指定了默認(rèn)的共享庫搜索路徑;PATH指定了可執(zhí)行文件的搜索路徑;PS1指定了shell的命令行提示符內(nèi)容,該環(huán)境變量的賦值稍微復(fù)雜一些,解釋如下。“e32m”表示后面的字體顏色為綠色;“uh Wa $”表示命令行提示符為用戶名主機(jī)名 所在路徑的最后一個(gè)目錄名 #(root用戶)或$(普通用戶),并且有響鈴(a)?!癳00;37m”表示后面的字符為白色。通過NFS掛載根文件系統(tǒng),如果用root用戶登錄,則命令行提示符如下,字體顏色為綠色。rootfs4412 # 構(gòu)建根文件系統(tǒng)的其他部分高端IT就業(yè)培訓(xùn)專家華清遠(yuǎn)見教育集團(tuán)/lib將交叉編譯工具鏈目錄下的lib目錄全部拷貝過來即可。$ cp -a /xxx/gcc-4.6.4/arm-arm1176jzfssf-linux-gnueabi/sysroot/lib/ /nfs/使用下面的命令可以減小庫的體積。$

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論