通过串口(console)来管理linux主机

1、 修改文件/etc/inittab

    编辑文件inittab,增加tty:2345:respawn:/sbin/agetty ttyS0 9600 vt100的内容:

    # vi /etc/inittab

    # Run gettys in standard runlevels

    1:2345:respawn:/sbin/mingetty tty1

    2:2345:respawn:/sbin/mingetty tty2

    3:2345:respawn:/sbin/mingetty tty3

    4:2345:respawn:/sbin/mingetty tty4

    5:2345:respawn:/sbin/mingetty tty5

    6:2345:respawn:/sbin/mingetty tty6

    tty:2345:respawn:/sbin/agetty ttyS0 9600 vt100

    “tty”为改行ID,“2345”指改行的运行级别是2、3、4、5级;“respawn”是使命令退出后再执行一次,以便其他用户能够登录;“/sbin/agetty ttyS0 9600 vt100”表示具体的命令,即通过他来执行打开串口/dev/ttyS0(COM1),后面是波特率和终端模式

    

    2、 修改/etc/securetty文件

    编辑文件/etc/securetty,增加ttyS0的内容:

    该文件是允许root身份登录的tty设备列表,这些设备由/bin/login程序读取,为了使用户能以root身份通过串口登录,需要在该文件中添加“ttyS0”,说明系统认为这里的COM1是安全的;

    # vi /etc/securetty

    console

    ttyS0

    ……

    

    3、 修改/boot/grub/menu.lst文件

    修改/boot/grub/menu.lst 文件,在文件的kernel 对应行上添加 “console=ttyS0,9600 console=tty0“,要令它生效需要重启系统

    # vi /boot/grub/menu.lst

    ……

    #boot=/dev/hda

    default=0

    timeout=10

    splashimage=(hd0,2)/boot/grub/splash.xpm.gz

    title Red Hat Linux (2.4.20-8)

     root (hd0,2)

     kernel /boot/vmlinuz-2.4.20-8 ro root=LABEL=/

     initrd /boot/initrd-2.4.20-8.img

    

    如果是lilo的则需要修改/etc/lilo.conf文件:

    在“linear”一行后添加“serial=0,9600n8”,将“append="root=LABEL=/"”更改为“append="root=LABEL=/ console=ttyS0,9600"”。

    Serial选项使LILO的启动信息输出到窜口,以便选择不同的系统或內核进行。其中,“0”表示串口使用COM1;“9600”表示波特率为9600bps;“n”表示无校验位;“8”表示有8位数据位。

    “append="root=LABEL=/ console=ttyS0,9600"”的作用是向内核传送参数,使系統启动信息到到窜口COM1,波特率为9600bps。修改完成后,重新运行一下LILO命令使配置生效

 --------------------------------------分割线------------------------------------------------------------------------------

1.添加终端启动程序
#vi /etc/inittab

S0:2345:respawn:/sbin/agetty ttyS0 vt100

2.激活该终端程序

#init q

3.查看进程

# ps -ef|grep agetty

root 3493 1 0 11:21 tx0000 00:00:00 /sbin/agetty ttys0 vt100

root 3551 3284 0 11:24 pts/1 00:00:00 grep tty

4. 连接串口线到SUSE Linux主机的串口上,打开终端或超级终端即可得到SUSE Linux的

登录画面。

 

 

### Linux环境下使用`virsh console`登录KVM虚拟机失败解决方案 当尝试通过 `virsh console` 连接到 KVM 虚拟机时出现问题,通常是因为虚拟机配置不正确或缺少必要的设置。以下是详细的排查和解决方法: #### 1. 检查虚拟机串口控制台配置 确保虚拟机已启用并正确配置了串口控制台设备。这可以通过编辑 XML 配置文件来完成。 ```bash virsh edit <vm-name> ``` 在 `<devices>` 标签内查找是否存在如下配置项[^1]: ```xml <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> ``` 如果不存在,则手动添加上述配置,并保存更改。 #### 2. 修改GRUB引导加载程序参数 对于基于 GRUB 的操作系统,在 `/etc/default/grub` 文件中加入以下两个选项以支持串行控制台输出: - `console=ttyS0,115200n8`: 将日志信息重定向到第一个串行端 (ttyS0),波特率为 115200bps。 - `earlyprintk=serial,ttyS0,115200`: 启动早期打印功能以便于调试。 更新完成后需重新生成 grub.cfg 并重启系统使修改生效: ```bash sudo update-grub sudo reboot ``` #### 3. 使用virt-manager验证连接状态 有时直接使用命令行工具可能不如图形界面直观。可以考虑借助 virt-manager 来测试与目标 VM 的连接情况。它能够提供更丰富的错误提示信息帮助定位问题所在。 #### 4. 排除网络因素干扰 尽管 `virsh console` 是一种本地通信方式,但在某些情况下仍会受到防火墙或其他安全策略的影响。确认宿主机上没有任何阻止 PTY 设备正常工作的防护措施[^2]。 #### 5. 查看日志记录寻找线索 最后但同样重要的是查看 libvirt 和 qemu-kvm 日志文件,这些日志往往包含了大量有用的信息用于诊断故障原因。路径一般位于 `/var/log/libvirt/qemu/`. ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值