mark archlinux update

更新Archlinux出现lib目录问题鸟

Proceed with installation? [Y/n] y
:: Retrieving packages from extra...
 ghostscript-9.06-1-...    12.0 MiB  3.21M/s 00:04 [######################] 100%
(278/278) checking package integrity               [######################] 100%
(278/278) loading package files                    [######################] 100%
(278/278) checking for file conflicts              [######################] 100%
error: failed to commit transaction (conflicting files)
glibc: /lib exists in filesystem
Errors occurred, no packages were upgraded.

上网看看据说是/lib迁移到/usr/lib引起的
#cd /lib && pacman -Qo *
发现./modules目录不属于glibc
先把glibc略过,升级其他包
#pacman -Syu –ignore glibc
然后在进/lib看看,果然modules目录转移到/usr/lib/里了
接着再升级glibc
#pacman -S glibc
可以正常升级。
arch论坛关于升级glibc的帖子很火。。。
https://bbs.archlinux.org/viewtopic.php?id=145006
https://bbs.archlinux.org/viewtopic.php?id=145795

妹的,又遇到了

error: failed to commit transaction (conflicting files)
filesystem: /etc/profile.d/locale.sh exists in filesystem
Errors occurred, no packages were upgraded.

只需要把这个文件重命名就好了
mv /etc/profile.dlocale.sh /etc/profile.d/locale.sh.old
继续#pacman -Syu –ignore glibc
重试了好几次,最后把locale.sh删除才成功!

 

系统修复

如果你已经不幸使用 –force 升级并挂掉了,那么请参考以下资料进行修复:
方法一 (中文翻译
方法二

新闻

解决end_request I/O error on device fd0,sector 0 Buffer I/O error on device fd0,logical block 0

以前刚装好Archlinux的时候就发现了,切换到tty1 2 3 4 下面就一直出现下面两行的error提示
end_request I/O error on device fd0,sector 0
Buffer I/O error on device fd0,logical block 0
后来一直也没管它,偶尔开机后还会卡住gonme进不去,我还一直以为是我的USB摄像头的问题呢!

今天下定决心要把它搞定。用心google了一把,问题出现在fd0上面,也就是floppy上面,这个floppy也就是软驱,话说从我开始玩电脑起就没用过这玩意。虽然表哥送的电脑有软驱。
查看是否加载了floppy模块:

#lsmod | grep -i floppy

如果显示像下面这行说明加载了floppy模块。

floppy                 95465  0

在ArchWiKi里查到禁用软驱模块的方法有几种:
Kernel modules (简体中文)
黑名单
对内核模块来说,黑名单是指禁止某个模块装入的机制。当对应的硬件不存在或者装入某个模块会导致问题时很有用。

有些模块作为 initramfs 的一部分装入。

mkinitcpio -M 会显示所有自动检测到到模块:要阻止 initramfs 装入某些模块,可以在 /etc/modprobe.d/modprobe.conf 中将它们加入黑名单。

运行 mkinitcpio -v 会显示各种钩子(例如 filesystem 钩子, SCSI 钩子等)装入的模块。如果要禁用这些模块,记得在配置完成后重新生成 initramfs。
使用 /etc/modprobe.d/ 中的文件
/etc/modprobe.d/ 中创建 .conf 文件,使用 blacklist 关键字屏蔽不需要的模块,例如如果不想装入 pcspkr 模块:

/etc/modprobe.d/nobeep.conf
# Do not load the pcspkr module on boot
blacklist pcspkr
注意: blacklist 命令将屏蔽一个模板,所有不会自动装入,但是如果其它非屏蔽模块需要这个模块,系统依然会装入它。

要避免这个行为,可以让 modprobe 使用自定义的 install 命令,直接返回导入失败:

/etc/modprobe.d/blacklist.conf
...
install MODULE /bin/false
...

这样就可以 “屏蔽” 模块及所有依赖它的模块。
使用内核命令行
同样可以通过内核命令行(位于 GRUBLILOSyslinux)禁用模块:

modprobe.blacklist=modname1,modname2,modname3

或者:

modname.disable=1

当某个模块导致系统无法启动时,可以使用此方法禁用模块。
使用 GRUB 的示例

/boot/grub/menu.lst
...
kernel /vmlinuz-linux root=/dev/sda1 modprobe.blacklist=pcspkr,ipv6 ro
...
/boot/grub/menu.lst
...
kernel /vmlinuz-linux root=/dev/sda1 pcspkr.disable=1 ipv6.disable=1 ro
...

我使用的方法是在/boot/grub/menu.lst里面加上modprobe.blacklist=floppy
打开编辑/boot/grub/menu.lst文件

vim /boot/grub/menu.lst
...
kernel /vmlinuz-linux root=/dev/sda1 modprobe.blacklist=floppy ro ...
...

修改完保存重启系统

# reboot

use expect SSH Auto login

一、要安装这两个东东。
CentOS下

1
yum install tcl
tcl.x86_64 1:8.5.7-6.el6
2
yum install expect
expect.x86_64 0:5.44.1.15-2.el6

ArchLinux下

1
pacman -S tcl
2
pacman -S expect

自动登了ssh脚本

vim sshlogin.exp

 

#!/usr/bin/expect -f
#auto ssh login

set timeout 20
spawn ssh -qTfnN -D 7070 你的登录用户@服务器ip地址

expect "*password:"
send "you passwd\r"
interact

chmod +x sshlogin.exp
二、实现开机自动登录到tty4。
以下是在ArchLinux上操作的,其它系统也差不多。
1、安装自动登录tty的软件

pacman -S mingetty

mingetty-1.08-3-x86_64

vi /etc/inittab

找到关于tty4的,在Archlinux里是c4:2345:respawn:/sbin/agetty…这样的一行改成

c4:23:respawn:/sbin/mingetty --autologin javasboy tty4

把javasboy换成你要登录的用户,且能运行上面脚本的权限。
2、在javasboy用户下的~/.bashrc里面加上:

tty | grep -q tty4 && /home/javasboy/bin/sshlogin.exp

这样tty4就能开机运行这个命令了。

还可以通过crond定时检测7070端口和ssh进程是否运行来重新启动,这样就能实现断线自动重连的功能了。
在此感谢SUN的无私帮助。

第一次成功安装Archlinux Gnome3

记得大学时第一次装Ubuntu,还申请了光盘,一个月后意外的收到了光盘,非常鸡动,而现在亦非常鸡动,因为把Archlinux装上了。整整装了一天一夜,在群里问达人解决问题,重装过3次。最后又在XP系统里装VM,也遇到同样的问题。

经过群里前辈们的指点,一个一个试着找方法,最后终于知道为什么发出现这个问题了。
问题就是装了gnome3、gdm也设置好了 就是进不去桌面。如下图:

Archlinux GDM Error
Archlinux GDM Error

#pacman -S gdm

#usr/share/glib-2.0/schemas/org.gnome.login-screen.gschema.xml: Error on line 5 char 1: invalid name ‘enable-fingerprint-authentication’: maximum length is 32. This entire file has been ignored.

#/etc/rc.d/gdm start

#/usr/sbin/gdm-binary: symbol lookup error:/usr/sbin/gdm-binary:undefined symbol:g_cclosure_marshal_generic

问题在于
1、我设置了过多的源,把Chinalist里的源全打开了,只要用163的源就OK了,虽然慢一些,但纯。
2、删除gnome 和gdm pacman -Rscn gdm gnome
还有提示有问题的那个文件 rm /etc/profile.d/locale.sh
3、清空下载目录缓存 pacman -Scc
4、更新系统 pacman -Syy
pacman -Syu
5、重新安装 pacman -S gnome gdm

Archlinux gnome 3
Archlinux gnome 3