Jul
6
[原]Asianux 4.0 的拯救模式
当系统出现问题时,我们会进入拯救模式以便进行修复。但Asianux 4.0取消了NetCat(简称nc),导致网络备份文件比较麻烦。幸好,其把sshd加进入了,所以,我们可以打开SSH服务,来满足需要。
一、进入拯救模式
用光盘引导系统,在选择菜单按“R”,或选择“Rescue installed system”:
还有,可以按旧方法,用Tab切换到编辑模式,然后再最后输入rescue,也行。
选择安装介质来源:
激活网络:
设定网卡:
挂载分区:
选项意思如下:
假设您选择的是“Continue”,会提示:
进入Shell状态:
二、打开ssh 服务
有两种办法:
1、手动创建SSH证书
执行下面的命令:
接着,你就可以启动ssh 服务了:
结果如下:
这时,就可用putty等工具直接访问。(用户名为root,不需密码)
2、从本地硬盘中获取SSH的证书文件
若能直接访问本地磁盘分区,你也可以直接拷贝已有的证书:
三、修复Grub
执行下面的命令,可对Grub进行修复:
四、重建系统SELinux标记
Asianux 4.0 默认打开SELinux,若在配置时关闭了该服务,后来重新打开,需要对系统中的文件进行标记。
这可通过在拯救模式下,运行restorecon命令对指定的目录或文件操作。
如果文件数量很多,则建议让系统自行标记。只需在系统根目录下建立一个.autorelabel 的文件:
那么,系统再重新启动后,会自动执行打标记的动作:
五、补充
如果以“Continue”模式挂载了本地磁盘根分区,那么,anaconda 会自动引用本地系统中的执行文件目录:
也就是说,你可以用本地系统的命令,如nc、lsof、netstat 等:
这是比较方便的。不过,ssh 状态并不会这样做,你可以手动配置一下环境变量:
※ 注意,若本地的执行文件有异常(如中毒等),请不要执行这操作。
一、进入拯救模式
用光盘引导系统,在选择菜单按“R”,或选择“Rescue installed system”:
还有,可以按旧方法,用Tab切换到编辑模式,然后再最后输入rescue,也行。
选择安装介质来源:
激活网络:
设定网卡:
挂载分区:
选项意思如下:
引用
Continue 可直接把本地硬盘的根分区挂载到/mnt/sysimage目录下;
Read-Only 会以只读的方法挂载本地硬盘根分区,以便备份数据;
Skip 不挂载;
Advanced 挂载SAN等外接设备。
Read-Only 会以只读的方法挂载本地硬盘根分区,以便备份数据;
Skip 不挂载;
Advanced 挂载SAN等外接设备。
假设您选择的是“Continue”,会提示:
进入Shell状态:
二、打开ssh 服务
有两种办法:
1、手动创建SSH证书
执行下面的命令:
# cd /etc/ssh/
# ssh-keygen -q -t rsa1 -f ssh_host_key -C '' -N ''
# ssh-keygen -q -t rsa -f ssh_host_rsa_key -C '' -N ''
# ssh-keygen -t dsa -f ssh_host_dsa_key -C '' -N ''
# ssh-keygen -q -t rsa1 -f ssh_host_key -C '' -N ''
# ssh-keygen -q -t rsa -f ssh_host_rsa_key -C '' -N ''
# ssh-keygen -t dsa -f ssh_host_dsa_key -C '' -N ''
接着,你就可以启动ssh 服务了:
# /bin/sshd -f /etc/ssh/sshd_config.anaconda
结果如下:
这时,就可用putty等工具直接访问。(用户名为root,不需密码)
2、从本地硬盘中获取SSH的证书文件
若能直接访问本地磁盘分区,你也可以直接拷贝已有的证书:
# cd /mnt/sysimage/etc/ssh/
# cp ssh_host_* /etc/ssh/
# /bin/sshd -f /etc/ssh/sshd_config.anaconda
# cp ssh_host_* /etc/ssh/
# /bin/sshd -f /etc/ssh/sshd_config.anaconda
三、修复Grub
执行下面的命令,可对Grub进行修复:
引用
# grub
grub> find /boot/grub/stage1
find /boot/grub/stage1
(hd0,0)
grub> root (hd0,0)
root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 26 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+26 p (hd0,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> quit
grub> find /boot/grub/stage1
find /boot/grub/stage1
(hd0,0)
grub> root (hd0,0)
root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 26 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+26 p (hd0,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded
Done.
grub> quit
四、重建系统SELinux标记
Asianux 4.0 默认打开SELinux,若在配置时关闭了该服务,后来重新打开,需要对系统中的文件进行标记。
这可通过在拯救模式下,运行restorecon命令对指定的目录或文件操作。
如果文件数量很多,则建议让系统自行标记。只需在系统根目录下建立一个.autorelabel 的文件:
# touch /mnt/sysimage/.autorelabel
那么,系统再重新启动后,会自动执行打标记的动作:
五、补充
如果以“Continue”模式挂载了本地磁盘根分区,那么,anaconda 会自动引用本地系统中的执行文件目录:
引用
# echo $PATH
/tmp/product:/tmp/updates:/usr/bin:/bin:/sbin:/usr/sbin:/mnt/sysimage/bin:/mnt/sysimage/usr/bin:/mnt/sysimage/usr/sbin:/mnt/sysimage/sbin:/mnt/sysimage/usr/X11R6/bin:/sbin:/usr/sbin
/tmp/product:/tmp/updates:/usr/bin:/bin:/sbin:/usr/sbin:/mnt/sysimage/bin:/mnt/sysimage/usr/bin:/mnt/sysimage/usr/sbin:/mnt/sysimage/sbin:/mnt/sysimage/usr/X11R6/bin:/sbin:/usr/sbin
也就是说,你可以用本地系统的命令,如nc、lsof、netstat 等:
引用
# type nc
nc is /mnt/sysimage/usr/bin/nc
# type lsof
lsof is /mnt/sysimage/usr/sbin/lsof
# type netstat
netstat is /mnt/sysimage/bin/netstat
nc is /mnt/sysimage/usr/bin/nc
# type lsof
lsof is /mnt/sysimage/usr/sbin/lsof
# type netstat
netstat is /mnt/sysimage/bin/netstat
这是比较方便的。不过,ssh 状态并不会这样做,你可以手动配置一下环境变量:
引用
# export PATH=/tmp/product:/tmp/updates:/usr/bin:/bin:/sbin:/usr/sbin:/mnt/sysimage/bin:/mnt/sysimage/usr/bin:/mnt/sysimage/usr/sbin:/mnt/sysimage/sbin:/mnt/sysimage/usr/X11R6/bin:/sbin:/usr/sbin
※ 注意,若本地的执行文件有异常(如中毒等),请不要执行这操作。