页面

2009-05-12

debian系统维护旁门左道

有时候由于/etc/passwd或/etc/shadow文件损坏,甚至由于键盘设置不当,导致内核启动后无法登录,这个时候,可以通过设置grub(或lilo)来进入系统。此时的系统就是个赤裸裸的程序集合,没有任何权限分配。
  1. 在内核进入grub提示界面时按下“e”,进入编辑模式,找到kernel行,增加选项“init=/bin/bash”,看起来像:
    kernel /boot/vmlinuz-2.6.26-1-amd64 root=/dev/sda1 ro init=/bin/bash
    lilo系统这样修改:
    boot: linux init=/bin/bash

  2. 此时分区只是个只读分区,调整为可写:
    $ mount -o remount,rw /

  3. 重启后,直接进入bash。此时可以恢复引导程序:
    $ /usr/sbin/update-rc.d

    或者配置键盘:
    $ /usr/sbin/dpkg-reconfigure console-data

如果无法通过grub进入shell,那可以使用Live CD系统进行修复,因为大多数Live系统不要求密码,充其量用一个不要求密码的sudo指令。进入Live系统后直接chroot原系统:
$ sudo chroot /mnt

注:chroot(change root directory)这个指令用来指定新的根(/)路径。

没有评论: