BBS水木清华站∶精华区

----midi---- 
Linux中,root口令丢了,完全没必要重装.解决办法:用boot盘和root盘启动,进入到 
安装状态,然后把文件系统mount到一个目录里,如/mnt里,随后修改/etc/passwd即可. 
====================== 
上面的是老斑竹收集的,是针对Slackware的用户的。 但是随着其他发布的广泛 
应用,相应地就产生了其他的不同的解决方案, 所以现在增补进来。 
感谢yanglc, chenl, djq, goqd, scaner他们的问题和答复。 //bow 
有很多资料可以到找BootPrompt-HOWTO来看的。 
                                               Linuxrat 于1999.11.22 
====== 
1. 如果您使用LILO做引导器: 
   在LILO boot:提示后面键入linux single或者linux 1. 这个linux指的就是 
   您给Linux的一个标识名称(lable), 在LILO boot:提示的时候敲打TAB键是 
   可以看到这个label的。一般默认是linux的。single或者1是表示单用户模式。 
   这样的话, LILO就会把这个参数传递给/sbin/init这个程序, 然后就进入 
   单用户模式, 这时一般情况下您是不会看到login:之类的提示的, 而是出现 
   bash#这样的提示, 证明您已经进入Linux了。然后就passwd来修改root密码了。 
   或者vi /etc/passwd. 如果您在/etc/目录下还发现有个shadow文件, 那么 
   您就直接修改/etc/shadow而不要管/etc/passwd. 清除掉root的密码段, 请 
   看例子: 
   /etc/passwd:  
   root:x:0:0:root:/root:/bin/bash 
        ^有这个x就证明您已经使用了影子加密, 可以找到/etc/shadow文件的。  
   /etc/shadow: 
   root:Kecg.kcFQZXFY:10875:0:99999:7:-1:-1:134534592 
        ^^^^^^^^^^^^^关键就是两个冒号":"之间的这些字符, 清除掉就行了。 
   可别忘了存盘了哦。 :-)  很简单吧? 
 
   上面说到了,一般强制使用single mode是看不到login:提示的, 但是对于 
   SuSE, Caderal Open Linux来讲,还是需要密码的, 怎么办呢? 请看第3). 
 
2. 如果不是安装LILO到MBR上, 另外还安装了一个M$-DOG或者M$-Windoze9x 
   那么您就使用loadlin.exe的办法从硬盘启动。 需要的两个文件是: 
   loadlin.exe和vmlinuz, 如果可能, 还可以有一个rescue.img文件。这些文件 
   可以在光盘的dosutils, dosutils/autoboot里面找到, 或者images. 请按照 
   以下格式运行, 同时保证您指定的文件的路径是符合您的情况的: 
    loadlin.exe vmlinuz root=/dev/hdXY 1 rw 
   解释: /dev/hdXY当中的XY是表示您的Linux的根盘所在分区, 也就是root  
   partition. 比如hda1, hda3, hda6, hdb2, hdc5, hdd5, sda1之类的。 
   数字 1 的意义就是指定进入单用户模式,跟前面所提到的是一样的, 所以也 
   可以使用s或者single来代替。 rw呢,就是让系统进去之后能够进行能够读写 
   (read and write)。 这样的话就能够以单用户模式进入系统了。 root密码的 
   改法跟步骤1)是一样的。 
   如果忘了加rw这个参数,那么系统就将磁盘设备设置成为ro(Read-Only)只读 
   模式。 其实也不必担心,可以不要重新启动机器。 进入单用户模式之后, 
   运行mount命令, 格式如下: 
              mount -n -o remount,rw / 
   这个指令可以在/etc/rc.d/rc.sysinit里面找到,如果忘记了的话,不要害怕, 
   cd /etc/rc.d; grep 'remount' * 就可以找到了。 
   接着的步骤就是运行passwd或者vi修改密码文件啦。 
 
3. 指定单用户仍然需要密码的情况, 指定参数为init=/bin/bash 
   对于SuSE, COL等发行版本来说,无论哪个模式都是需要密码的。预测将来这  
   个特性会成为标准设置。所以请大家在安装过程当中务必制作安装程序要求 
   创建的系统盘,“不怕一万,只怕万一”呀。没有系统盘,就试验以下方法: 
 
   LILO为引导器的: 在LILO boot:提示后面输入 linux init=/bin/bash rw 
   使用loadlin为引导器: vmlinuz root=/dev/hdXY rw init=/bin/bash 
   进入系统之后您就可以执行passwd或者修改密码文件了。 
 
   解释:指定内核自检完毕后控制权直接转交给/bin/bash这个命令解释器,绕过 
         其他的程序,比如/etc/rc.d/rc, /etc/rc.d/rc.sysinit...., 以可读写 
         状态进入系统。 
   关于这个参数的使用和原理,可以参见BootPrompt-HOWTO和内核源码。 

BBS水木清华站∶精华区