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使用手册导航

Debian安装

安装Debian GNU/Linux前准备 | 获取系统安装介质 | 使用Debian安装程序 | 启动进入新 Debian 系统 | 内核及其它信息 | 为Debian准备分区 | 安装指南 | 在Debian上安装Apache+Mysql+PHP

Debian使用

Debian 文件 | Debian基本操作 | Midnight Commander (MC) | 类Unix工作环境 | 类Unix文本处理 | 类Unix文件系统 | Debian生存命令 | Debian进阶 | Debian其他特性 | Debian下的Linux内核 | 启动系统 | Debian/活动记录及拷贝、创建子目录 | 差量备份、数据同步与系统冻结恢复 |常用命令与典型错误| 系统初始化 | 访问限制(Restricting access) | 刻录机 | 本地化

Debian升级

Debian系统升级 | 发行版升级到stable、testing或unstable

Debian技术支持

Debian技术支持

Debian常见问题

定义与概述 | 兼容性问题 | Debian 的软件系统 | Debian 的 FTP | Debian 的包管理系统 |Debian 的包管理工具 |更新系统 | Debian 与内核 | 定制 Debian GNU/Linux 的安装 |获取 Debian GNU/Linux 的支持 | 为 Debian 项目捐赠 | 作为商品销售Debian以及对其的展望