免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: sam's
打印 上一主题 下一主题

开始学Linux了,我的学习笔记 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2005-11-12 18:52 |只看该作者
好,希望可以坚持

论坛徽章:
0
32 [报告]
发表于 2005-11-13 07:49 |只看该作者

谢谢了

谢谢~~~

论坛徽章:
0
33 [报告]
发表于 2005-11-13 22:28 |只看该作者
up

论坛徽章:
0
34 [报告]
发表于 2005-11-13 22:53 |只看该作者
为什么我不能下附件 愤怒

论坛徽章:
0
35 [报告]
发表于 2005-11-14 20:02 |只看该作者
四、        Rescue模式
接下来我想说说rescue模式,很多时候对于我们这些新手出了问题的时候,紧急盘也许是唯一的解救方法。可以使用安装盘的第一张作为rescue盘,也可以制作软盘的应急盘,这里主要介绍安装盘第一张作为rescue盘。

假设我们系统的/etc/fstab不见了,无法进入系统,现在我们尝试使用rescue的方法解决这个问题:

首先mv /etc/fstab /etc/fstab.bak 再重新启动。这下无法进入linux了。

[attach]01.gif[/attach]

当然我们可以输入root密码进入shell进行修改,不过我们这里会用rescue的方式来进行修复。

1. 使用安装盘1进入安装界面,在画面之中输入 linux rescue 然后回车

[attach]02.gif[/attach]

可以使用linux rescue askmethod进行网络的安装,安装源会在/mnt/source。

[attach]03.gif[/attach]

2. 然后选择语言和键盘格式

[attach]04.gif[/attach]
[attach]05.gif[/attach]

3. 选择是否需要配置网络
一般在rescue模式都不需要网络,除非需要从网络安装rpm包。
选择完键盘之类会有画面选择rescue方式:

[attach]06.gif[/attach]

4. 选择是否然让系统查找硬盘上的linux 系统

[attach]07.gif[/attach]
可以选择继续,系统将会尝试寻找linux然后将它们挂接到/mnt/sysimage,如果选择read-only,系统做同样事情,然后挂接成readonly。Skip会略过这步,系统不会尝试挂接任何文件系统。

5. 硬盘上的文件系统并没有被找到
好像rescue并不识别lvm,所以并没有找到我的文件系统,rhel4缺省使用了lvm进行安装/。

[attach]08.gif[/attach]
[attach]09.gif[/attach]

6. 如果找到的话,我们知道会北挂接在/mnt/sysimage下,现在没有找到/,怎么办?我们进入到了一个shell。
详细的lvm将会在后面详细介绍,这里用简单方法找出文件系统,然后moun它:
$lvm
lvm>pvdisplay
lvm>vgdisplay
lvm>lvdisplay

[attach]10.gif[/attach]

可以看到我的两个logical volume:
/dev/VolGroup00/LogVol00和/dev/VolGroup00/LogVol01,根据它的大小我们也可以一眼就知道/dev/VolGroup00/LogVol00是我们的/。我们可以在lvm环境看到我们的lvm,是不是可以马上就mount为/mnt/sysimage呢?我尝试mount它:
$mkdir /mnt/sysimage
$mount -t ext3 /dev/VolGroup00/LogVol00 /mnt/sysimage

[attach]11.gif[/attach]

怎么提示没有文件或目录呢,/mnt/sysimage是已经创建了的啊。其实是设备文件不存在,rescue环境只是一个很简单的linux环境,并不会把我们以前创建的设备文件拷贝过来,我的/都没有mount,甚至都找到。
怎么办,看看/dev吧,看看都有些什么咚咚:
$ls /dev

[attach]12.gif[/attach]

的确是没有lvm的设备文件,甚至连cdrom都没有,我的cdrom是ide-0的,找不到hda啊。没办法了,只能是想办法创建我们需要的设备文件了,才能完成我们的mount啊。不是有MAKEDEV,makenod么,找找吧:
$whereis MAKEDEV

[attach]13.gif[/attach]

没有啊,经过一轮查找我发现(可以看看rescue的PATH变量),rescue环境的大部分命令都存在于/usr/bin下,里面有一个makedevs命令。

[attach]14.gif[/attach]

  
真的可以,于是我尝试创建了hda:
$makedevs /dev/hda b 3 0 0 0 s           
$mkdir /mnt/cdrom
$mount –t iso9660 /dev/hda /mnt/cdrom
真的成功了哦。那剩下来要做的是要创建lvm的设备文件,我想大家翻看详细的资料应该可以知道要创建些什么设备文件,我找到了一个简单的办法:
启动时在rc.sysinit不是会启动lvm的支持么:
我找到了这么几句:

if /sbin/lvm.static vgscan --mknodes --ignorelockingfailure > /dev/null 2>&1 ; then
action $”…..” /sbin/lvm.static vgchange –a y --ignorelockingfailure
fi

[attach]15.gif[/attach]

于是我试了一下:
$lvm
lvm>vgscan --mknodes --ignorelockingfailure  
lvm>vgchange -ay --ignorelockingfailure  
lvm>quit
$ls /dev
真的为我们创建了lvm的设备文件。
接下来就很简单了
$mkdir
$mount –t ext3 /dev/mapper/VolGroup00-LogVol00 /mnt/sysimage

[attach]16.gif[/attach]

把/etc/fstab.bak拷贝回/etc/fstab,问题解决。
如果是rescue环境下找不到的其他分区,可以以下方式处理:
$fdisk –l                  #查找已有的分区
$mkdir pathname     #创建你想挂接到的目录
$mount –t ext3 /dev/hdaX  pathname    #挂接文件系统,如果设备文件不存在,按上面的方式可以创建设备文件

6. 如果是rescue找到的文件系统,将会挂接在/mnt/sysimage下。

7. 可以直接进入/mnt/sysimage或者chroot更改出错的配置文件,如果必须重新安装rpm包的话,要chroot到我们的/,否则软件都安装到rescue的环境了,可以按照之前的方法挂接cdrom,然后重新安装,我在第二章有列出基本的rpm命令,可以参考。

8. 完成之后,可以使用exit退出chroot,再exit就退出rescue环境了,就会重新启动。

重点:
1. 如果是文件系统问题,可以直接使用fsck
2. 可以用mount来mount有配置问题或者其他问题的文件系统
3. 可以用chroot切换/到指定的文件系统。(这样可以使用指定文件系统的命令)

基本上rescue的linux更加象是一个单用户或者传递了init=/bin/bash的linux,然后我们可以mount目录,也可以chroot来修复系统,所以等同使用一个软盘版的linux进入shell之后。

[ 本帖最后由 sam's 于 2005-11-14 20:19 编辑 ]

01.GIF (34.16 KB, 下载次数: 301)

01.GIF

02.GIF (27.17 KB, 下载次数: 216)

02.GIF

03.GIF (26.21 KB, 下载次数: 193)

03.GIF

04.GIF (27.08 KB, 下载次数: 180)

04.GIF

05.GIF (26.39 KB, 下载次数: 185)

05.GIF

06.GIF (24.61 KB, 下载次数: 179)

06.GIF

07.GIF (30.14 KB, 下载次数: 209)

07.GIF

08.GIF (24.99 KB, 下载次数: 186)

08.GIF

09.GIF (20.67 KB, 下载次数: 184)

09.GIF

10.GIF (24.06 KB, 下载次数: 226)

10.GIF

11.GIF (21.99 KB, 下载次数: 188)

11.GIF

12.GIF (27.1 KB, 下载次数: 194)

12.GIF

13.GIF (27.66 KB, 下载次数: 189)

13.GIF

14.GIF (29.87 KB, 下载次数: 189)

14.GIF

15.GIF (26.44 KB, 下载次数: 184)

15.GIF

16.GIF (29.94 KB, 下载次数: 204)

16.GIF

论坛徽章:
0
36 [报告]
发表于 2005-11-14 20:48 |只看该作者
顶了,好贴,精华吧

论坛徽章:
0
37 [报告]
发表于 2005-11-15 07:48 |只看该作者
好文章啊!但是原创的少啊!

论坛徽章:
0
38 [报告]
发表于 2005-11-15 09:56 |只看该作者

比较适合我

呵呵,适合我

论坛徽章:
0
39 [报告]
发表于 2005-11-15 21:17 |只看该作者
感觉到有点累了,做些试验来调剂一下

RHCE的有关启动的排错题目分析

我学Linux的一个简单目标是要考过RHCE,所以我也花了些时间在RHCE的排错题的解决之上。以下只是将网络上我所见之排错题目罗列与此,用实验的方法验证并分析解决之,这次是有关启动的部分。

先是几个是摘自RHCE Study Guide Exam RH302 3rd,有点旧,不过题目蛮好的。

题目一
Debug Exercise I
     In this exercise, you'll be working without an /etc/fstab configuration file. To prepare, rename this file to something that you can remember and restore as required, such as /etc/bak.fstab. You'll also need a rescue disk. If your computer can boot directly from your CD drive, the first Red Hat Installation CD can serve this purpose. Otherwise, you'll also need a boot disk that also allows you access to the actual Red Hat Linux installation files, locally or over a network. And you'll need to know the root password for this system.
     The objective is to learn how /etc/fstab works, as well as the key configuration parameters associated with an /etc/fstab configuration line for your root (/) directory.
1.        Start Red Hat Linux. Rename your /etc/fstab configuration file. One possible name is /etc/bak.fstab.
2.        Make sure you have a boot disk that can serve as a rescue disk. If you know that your computer can boot directly from your Red Hat Linux installation CD, you're set. Otherwise, create a boot disk from the appropriate image file (boot.img, bootnet.img, or pcmcia.img).
3.        Use the reboot command to restart Linux.
4.        When you see your boot loader, probably GRUB, select your current version of Red Hat Linux.
5.        Watch the messages as they scroll across the screen. You'll probably see a message similar to:
WARNING: couldn't open /etc/fstab: No such file or directory
6.        You'll probably be taken to the single-user mode maintenance login prompt. Enter your root password at this prompt.
7.        Find your currently configured partitions with the fdisk -l command. Make a note of each partition device that is formatted to a Linux filesystem.
8.        Check the labels associated with each Linux-formatted partition. For example, if one of the partitions is /dev/hda1, run the e2label /dev/hda1 command. Make a note of the label that you see, such as /boot or /.
9.        Try restoring your /etc/fstab file from your backup. It probably won't work.
10.        Reboot your computer with a Red Hat Linux installation CD or boot disk. Type linux rescue at the boot prompt.
11.        Follow the first basic steps toward installation.
12.        Direct the installation program toward the source for the Red Hat Linux installation files, as required.
13.        When you get to the Rescue menu, select Continue and press ENTER.
14.        Since Linux still can't find your /etc/fstab file, you'll see an error message that suggests that you don't have any Linux partitions. Select OK and press ENTER to continue.
15.        You are now in rescue mode. Run the df command. You probably won't see any of your normal filesystems mounted anywhere.
16.        Try running the man fstab command. You probably won't be able to see the man page for the /etc/fstab configuration file.
17.        Create the /mnt/sysimage directory as required with the mkdir command.
18.        Back in step 8, you found the partition device associated with your root directory. Mount it on the /mnt/sysimage directory.
19.        Restore the basic workings of your directory structure with the chroot /mnt/sysimage command.
20.        Now try to rebuild /etc/fstab. Run the man fstab command. It should work now. Try to remember the settings for each of the columns in /etc/fstab. Using the fstab man page, and the information you gathered with the e2label command, try to rebuild a simple /etc/fstab file. Remember, avoid tabs and keep all configuration settings from wrapping to the next line. Create an /etc/fstab file with at least the settings for your root (/) directory.
21.        Remove the installation floppy and/or CD from their drives.
22.        Reboot your computer. If it works, congratulations. If it doesn't work, try editing /etc/fstab again.
23.        When you've had enough, restore your original /etc/fstab file from your backup. Reboot your computer to make sure everything is all right.
24.        Remember, you don't need to memorize all of the settings for /etc/fstab. However, you should recognize what works and what does not work in an /etc/fstab configuration file.
场景:
/etc/fstab丢失。

分析:
注意每个问题的出错信息,这是我们遇到问题第一能够得到的最好的线索。好比此题的: WARNING: couldn't open /etc/fstab: No such file or directory
已经很清楚的提示了/etc/fstab不存在。那么我们所要做的是要确定/etc/fstab是否存在,如果不存在就要想办法重建它。
在这个练习之中是使用rescue的环境来修复fstab,这正是之前我们练习过的方法。

解决方法:
(假定我们的Linux所在的分区都是普通的硬盘分区,如果是lvm,请参考之前的有关rescue环境的部分)
基本步骤如下:
1、        fdisk –l察看分区表,并记下
2、        使用e2label命令找到/和/boot等分区
3、        如果rescue已经为我们mount了分区,到第5步
4、        如果rescue没有找到分区,或者我们使用了skip直接到了shell状态,创建/mnt/sysimage目录后,自行mount根分区,如果设备文件不存在,使用makedevs自行创建
5、        chroot到/mnt/sysimage,这样我们可以得到很多命令,比如man之类
6、        根据fstab格式用vi自行创建fstab,最好要有/,/boot,/proc,swap,/dev/pts
7、        存盘,后sync后退回rescue环境
8、        exit退出重启动

其他方法1:

1.        启动后系统提示输入root密码可以进入shell,我们看到提示是(Repair filesystem)
2.        重新mount /成read write
$mount –o remount,rw /dev/hdaX /        #这里的hdaX是你的/分区
3.        同上自己创建/etc/fstab (fdisk -l,e2label)

其他方法2:
1.        Bootloader传递启动参数init=/bin/bash,进入shell模式
2.        重新mount /成read write
$mount –o remount,rw /dev/hdaX /        #这里的hdaX是你的/分区
3.        同上自己创建/etc/fstab

fstab本身不属于任何rpm包,即使是不同的机器因为分区的不同也许也不尽相同。无论用何种方法都要求对/etc/fstab有相当了解,当然我们也可以使用man fstab来现场察看fstab的格式。
后两种方法启动并未完成,一般来说bootloader的kernel的一般都是用ro参数的,所以记得要重新mount至rw状态


题目二
Debug Exercise II
     In this exercise, you'll be working without an /etc/inittab configuration file. To prepare, rename this file to something that you can remember and restore as required, such as /etc/bak.inittab.
     The objective is to learn the effect of a corrupt or missing /etc/inittab file.
1.        Start Red Hat Linux. Rename your /etc/inittab configuration file. One possible name is /etc/bak.inittab.
2.        Use the reboot command to restart Linux.
3.        Observe the messages as Linux tries to reboot. By default, the reboot command moves to runlevel 6.
4.        If you see a message such as No inittab file found, Linux probably hangs. At this point, you'll need to restart your computer through the physical reset button or on-off switch. Since you no longer have an /etc/inittab file, Linux can't find the processes to stop at runlevel 6.
5.        When you see your boot loader, probably GRUB, select your current version of Red Hat Linux.
6.        Watch the messages as they scroll across the screen. You'll probably see a message similar to:
INIT: No inittab file found
Enter runlevel:
7.        No matter what runlevel you enter, Linux ends up hanging. It's looking to /etc/inittab to find the scripts associated with the runlevel that you select. Since it can't find /etc/inittab, it stops with a no more processes left in this runlevel message.
8.        At this point, you'll need to reboot your computer again. But you can now restart your computer with a boot disk as in the last exercise, or try starting in single-user mode.
9.        When you see your boot loader, probably GRUB, you'll want to add a message to the kernel command line. In GRUB, enter p and type in your password if required. Then enter the a command to modify the kernel command line. You should see something like the following:
grub append> ro root=LABEL=/
10.        Type the word single at the end of this command line and press ENTER. Even though the /etc/inittab file is missing, Linux should boot you into single-user mode.
11.        Now try restoring your /etc/inittab file from the backup that you made. What happens?
12.        Remount your root directory (/) in read/write mode. For example, if your root directory is normally located on /dev/hda2, run the following command:
mount -o remount,rw /dev/hda2
13.        Try restoring your /etc/inittab file from the backup again. You should now be successful.
14.        Try the reboot command again. Linux can now find /etc/inittab and should reboot fairly normally.
场景:
/etc/inittab丢失。

分析:
这个练习我之前也做过,会提示没有找到inittab,无论输入什么run-level都会死机的。

解决方法:
还记得关于rpm命令的-qf参数么,可以查找文件所属的rpm包,当然-Vf可以知道文件发生的变化。
1.        如果有cd可以进入single模式,如果没有cd就是用rescue进入askmethod的网络方式,安装源会在/mnt/source之中
2.        尝试自行创建inittab,inittab比fstab要复杂的多,一般很少会自行创建它
3.        使用rpm –qf /etc/inittab查处所属的rpm包,是initscripts
4.        使用rpm命令重新安装initscripts,记得要使--force参数,如果是resce环境要chroot或者使--root参数指定root为/mnt/sysimage

/etc/inittab比较复杂,安装之后基本也是适用default的值,可以使用重新安装rpm包的方法重新安装,如果要修改,可以重新安装后再修改。

01.GIF (35.25 KB, 下载次数: 162)

01.GIF

论坛徽章:
0
40 [报告]
发表于 2005-11-16 08:50 |只看该作者
Debug Exercise III
     In this exercise, you'll be working with a modified /boot/grub/grub.conf configuration file. To prepare, copy and back up this file to something that you can remember and restore as required, such as /boot/grub/bak.grub.conf. If a relatively new administrator does not understand the meanings of root in the grub.conf configuration file, he may actually try to set root in the kernel configuration line to the partition associated with the /boot directory.
     The objective is to learn the effect of a corrupt /boot/grub/grub.conf file.
1.        Start Red Hat Linux. Back up your /boot/grub/grub.conf configuration file. One possible name is /boot/grub/bak.grub.conf.
2.        Edit the currently existing /boot/grub/grub.conf configuration file. Change the entry in the kernel command line for root to a different directory. If you normally have a separately mounted /boot directory, use the associated partition device such as /dev/hda1.
3.        Save your modified /boot/grub/grub.conf configuration file.
4.        Use the reboot command to restart Linux.
5.        Examine the boot messages as they scroll across your screen. If the kernel message points to the wrong partition, you'll get a message such as the following:
Kernel panic: No init found. Try passing init= option to kernel.
6.        When you see your boot loader, probably GRUB, you'll want to add a message to the kernel command line. In GRUB, enter p and type in your password if required. Then enter the a command to modify the kernel command line. You should see something like the following:
grub append> ro root=/dev/hda1
7.        Type the word single at the end of this command line and press ENTER. See what happens.
8.        You probably still have a kernel panic. Try to pass an init= option to the kernel. After resetting your computer, wait for the GRUB menu. Add init=/bin/sh to the end of the kernel command line. Try booting again.
9.        Back in the GRUB menu, edit the kernel command line again. Try editing the command to point root to different partitions and see what happens. Repeat as often as desired.
10.        Finally, back in the GRUB menu, point root to the correct partition.
11.        Try restoring your /boot/grub/grub.conf file from the backup.
12.        Try the reboot command again. Linux can now find your root partition and should reboot normally.
Debug Exercise IV
     In this exercise, you'll be practicing with Telnet. The service can be on or off by default. It may be blocked by a firewall. Service may be denied through the /etc/xinetd.d/telnet configuration file or through /etc/hosts.deny. Ideally, you'll be able to check your work through another computer on a LAN.
1.        Start Red Hat Linux. Check for the installation of the telnet package with the rpm -q telnet command. Install the telnet RPM if required.
2.        Check your configuration for a firewall with the /sbin/service iptables status command.
3.        If there are iptables rules active on your system, you may want to back them up with the /sbin/iptables-save > filename command.
4.        If you have iptables rules, flush them with the /sbin/iptables -F command.
5.        Check your /etc/hosts.allow and /etc/hosts.deny files. If there are rules related to in.telnetd or ALL services in either file, comment them out.
6.        Check the default status of Telnet with the /sbin/chkconfig --list telnet command. The response should be off or on. Use chkconfig to turn Telnet on if required.
7.        Check the /etc/xinetd.d/telnet configuration file. If there are only_from or no_access directives in this file, comment them out.
8.        Now you should be able to connect to Telnet. Try it from the local computer with the telnet localhost command. You should be able to log in with a local user name and password. Log out of Telnet.
9.        Repeat the telnet access request from a remote computer. Use the name or the IP address of the Telnet server. Log out of Telnet.
10.        On the Telnet server, add the following line to the /etc/xinetd.d/telnet configuration file:
no_access = 127.0.0.1
11.        From the computer with the Telnet server, try the telnet localhost command. What happens? Is a successful login through Telnet unexpected?
12.        Run the /sbin/service xinetd reload command. Repeat step 11. What happens now? If possible, try to use the telnet command to connect to the Telnet server from a different computer on your LAN. Can you connect?
13.        Restore the original /etc/xinetd.d/telnet configuration file and run /sbin/service xinetd reload command again.
14.        Open the /etc/hosts.deny file in a text editor. Add the following line:
in.telnetd : ALL
15.        Repeat step 11. What happens now? Try this again from another computer on your LAN.
16.        Restore the original /etc/hosts.deny file.
17.        Now try to set up a firewall to block yourself from accessing Telnet on the local computer.
18.        Add the following iptables chain to your firewall (the TCP/IP port for Telnet is 23. You can look up the port you need in /etc/services):
/sbin/iptables -A INPUT -s 127.0.0.1 -p tcp --dport 23 -j DROP
19.        Verify that your computer accepted this new rule with the iptables -L command. You should see that packets destined for Telnet are to be dropped.
20.        Repeat step 11. What happens now? Try to log in via Telnet again from another computer on your LAN.
21.        Note how the response is different when you block access through a firewall and through a file such as /etc/hosts.deny.
22.        Restore your original firewall. Flush the rule that you created with the /sbin/iptables -F command. Then restore the old rules if required with the /sbin/iptables-restore < filename command.
(6)Debug Exercise I
     In this exercise, you’ll be working without an /etc/passwd authentication file. To prepare, rename this file to something that you can remember and restore as required, such as /etc/bak.passwd. You’ll also need a rescue disk. If your computer can boot directly from your CD drive, the first Red Hat Installation CD can serve this purpose. Otherwise, you’ll also need a boot disk that also allows you access to the actual Red Hat Linux installation files, locally, or over a network. And you’ll need to know the root password for this system.
     The objective is to learn more about the authentication process.
1.        Start Red Hat Linux. Rename your /etc/passwd configuration file. One possible name is /etc/bak.passwd.
2.        Make sure you have a boot disk that can serve as a rescue disk. If you know that your computer can boot directly from your Red Hat Linux installation CD, you’re set. Otherwise, create a boot disk from the appropriate image file (boot.img, bootnet.img, or pcmcia.img).
3.        Use the reboot command to restart Linux.
4.        When you see your boot loader, probably GRUB, select your current version of Red Hat Linux.
5.        It will look like your computer boots normally.
6.        Now try to log in. Use any account that you’ve previously created on this computer. Note what happens.
WARNING: couldn't open /etc/fstab: No such file or directory
7.        Reboot your computer. Make sure the appropriate installation boot disk or CD is installed.
8.        When you see the Red Hat Linux installation options, type linux rescue at the boot prompt.
9.        Follow the first basic steps toward regular installation of Red Hat Linux.
10.        Direct the installation program toward the source for the Red Hat Linux installation files, as required.
11.        As long as you used the linux rescue command in step 8, you’ll soon see a Rescue menu. When you do, select Continue and press ENTER.
12.        Select OK and press ENTER to continue.
13.        Remember, assuming your normal directories and filesystems are detected, they are mounted on the /mnt/sysimage directory.
14.        Restore the basic workings of your directory structure with the chroot /mnt/sysimage command.
15.        Examine the /etc/passwd- file. Compare it to your original /etc/passwd file. If you followed the suggestion in step 1, you can do this with the diff /etc/passwd- /etc/bak.passwd command. If you’ve added or deleted users recently, you’ll see a difference between the two files.
16.        Copy /etc/passwd- to /etc/passwd (these are two different files). Reboot your computer again. Remember to remove your boot disk or CD before rebooting.
17.        Try logging in as root. Log out again.
18.        Try logging in as one of the regular users in your /etc/passwd- file. Note what happens.
19.        Now restore the original /etc/passwd file. If you followed the suggestion in step 1, run the mv /etc/bak.passwd /etc/passwd command.
20.        Reboot your Linux computer and repeat steps 17 and 18.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP