Debian/启动系统
Debian | Debian安装 | Debian使用 | Debian系统升级 | Debian常见问题 |
忘记了 root 密码[ ]
有两种方法可以解决此类问题:
解决方法一[ ]
只要能访问控制台键盘,不需要 root 密码也可以启动系统并以 root 帐号登录。 (这里假设没有 BIOS 密码或 lilo 之类的启动引导器密码用于控制系统启动。)
下面是一个不需要额外的启动盘或对 BIOS 启动设置进行修改的过程。这里的“Linux”是代表在 Debian 默认安装系统中启动 Linux 内核的标签。
在 lilo 的启动屏幕中,当 boot: 一出现时 (在某些系统中,您必须按 shift 键以阻止自动启动;如果 lilo 使用 framebuffer,您需要按 TAB 键才能看到自己输入的选项),就输入:
boot: Linux init=/bin/sh
这会让系统启动内核并运行 /bin/sh 而非其标准的 init。现在你已获得 root 权限和一个 root shell。由于当前 / 是以只读方式挂载,而其它的硬盘分区均未挂载,故你必须完成下列步骤才能获得一个有适当功能的系统。
init-2.03# mount -n -o remount,rw / init-2.03# mount -avt nonfs,noproc,nosmbfs init-2.03# cd /etc init-2.03# vi passwd init-2.03# vi shadow
(如果 /etc/passwd 文件中所有用户的第二个域的数据都为“x”,就表明系统使用了影子(shadow)密码,必须编辑 /etc/shadow。)要删除 root 密码,请编辑密码文件中第二个数据域,将它设置为空白。这样重启系统不用密码就能登录到 root。当系统启动进入 runlevel 1 时,Debian(至少是 Potato 以后的版本)需要密码,一些较老的版本则不需要。
在 /bin 下装一个小编辑器是个好习惯,因为有时 /usr 是无法访问的。
另外可以安装 sash 软件包,当系统无法启动时,还可执行:
boot: Linux init=/bin/sash
当 /bin/sh 不可用时,sash 可作为 sh 的交互式替代品,它是静态链接,内建了许多标准工具(在系统提示符下输入“help”可获得参考列表)。
解决方法二[ ]
从急救盘启动系统。假设 /dev/hda3 是原始 root 分区,可用下面的方法编辑密码文件,与上述方法一样容易。
# mkdir fixit # mount /dev/hda3 fixit # cd fixit/etc # vi shadow # vi passwd
与上面的方法相比,该方法的好处在于不需要知道 lilo 密码(如果有的话)。但如果系统没有预先设置为从软盘或 CD 启动,就需要访问 BIOS 的权限。
无法启动系统[ ]
没在安装过程中制作启动盘?没关系。如果 lilo 损坏了,从 Debian 安装套件中拿出启动盘,用它来启动系统。假设你的 root 分区在 /dev/hda12,你想进入 runlevel 3,在启动提示符后输入:
boot: rescue root=/dev/hda12 3
接下来,系统使用软盘上的内核启动,你可登录到一个几乎拥有全部功能的系统了。(可能有少量特性或模块不可用。)
不想直接启动到X[ ]
unstable/sid 很有趣,但在启动进程中执行不稳定的 xdm、gdm、kdm 或 wdm 会让你焦头烂额。
首先,在启动提示符后输入如下指令获得 root shell:
boot: Linux vga=normal s
这里的 Linux 是你要启动的内核的标记,“vga=normal”告诉 lilo 在普通 VGA 屏幕下运行,“s”(或“S”)是传给 init 的参数,告诉它进入单用户模式。在提示符后输入 root 密码。
有多种方法禁用 X 启动 daemons:
- 运行 update-rc.d -f ?dm remove ; update-rc.d ?dm stop 99 1 2 3 4 5 6 .
- 在所有 /etc/init.d/?dm 文件的最前面加上“exit 0”。
- 把所有的 /etc/rc2.d/S99?dm 文件改名为 /etc/rc2.d/K99?dm。
- 删除所有的 /etc/rc2.d/S99?dm 文件。
- 运行 :>/etc/X11/default-display-manager
其中,rc2.d 中的数字必须与 /etc/inittab 中指定的 runlevel 一致。而 ?dm 的意思是你要将同一个命令运行多次,每次将其替换成 xdm、gdm、kdm 和 wdm 中的一个。
在 Debian 下只有第一种方法是“唯一正确的方法”。最后一种方法比较简单但只适用于 Debian,而且还需要使用 dpkg-reconfigure 重新设置一次。其它方法都是通用的中 daemons 的方法。
你仍可在任何控制台 shell 中用 startx 命令启动 X。
其它用于启动提示符的技巧[ ]
使用 lilo 启动提示符,可指定系统启动到特定的 runlevel 和配置。
如果希望系统启动到 runlevel 4,可以 lilo 启动提示符后输入:
boot: Linux 4
如果希望系统启动到正常功能的单用户模式,而且你知道 root 密码,可在 lilo 启动提示符后输入下列任一参数。
boot: Linux S boot: Linux 1 boot: Linux -s
如果希望系统以少于实际内存数的内存启动(也就是说机器有 64MB 内存,只分配 48MB 给系统使用),在 lilo启动提示符后输入:
boot: Linux mem=48M
注意,不要指定大于实际内存数的内存,否则内核会崩溃。如果你有多于 64MB 的内存,如 128MB,应在系统启动时执行 mem=128M 或在 /etc/lilo.conf 中添加类似的命令行,否则旧内核或使用旧 BIOS 的主板将无法使用大于 64MB 的内存。
设置GRUB启动参数[ ]
GRUB 是 Hurd 项目开发的新型启动管理器,比 Lilo 更灵活,不过启动参数也与之稍有不同。
grub> find /vmlinuz grub> root (hd0,0) grub> kernel /vmlinuz root=/dev/hda1 grub> initrd /initrd grub> boot
请注意 Hurd 中的设备名:
HURD/GRUB Linux MS-DOS/Windows (fd0) /dev/fd0 A: (hd0,0) /dev/hda1 C: (usually) (hd0,3) /dev/hda4 F: (usually) (hd1,3) /dev/hdb4 ?
参考来源[ ]
http://www.debian.org/doc/FAQ/ch-getting.zh-cn.html
Debian使用手册导航 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|