昨天从 ThinkPad 中复制整个 Arch Linux 到 Panasonic CF-19 的硬盘中,复制和安装 GRUB 过程都一切正常。
但是目标系统中不管是 root 用户还是在 sudoers 中的用户都无法正确执行 sudo 命令,错误大概是:
Unable to stat '/etc/sudoers': Permission Denied! ...
而且,GDM 服务也无法正常启动!
经过各种排查,包含重新安装 sudo 及相关的依赖,检查 /etc/sudoers 文件的权限等等都不能解决。
最后,在一个论坛找到了问题的原因:即根分区根目录的权限不对!
# chmod 0755 /
一切正常!
Over!
解决了同样的问题,感谢!
你是用什么命令备份系统?
cp -a
cp -a 应该可以的不会造成你说的问题的
(只是不能备份到扩展属性和ACL, 幸好这两个东西在目前发布系统只有及个别时候用到很少用到)
备份系统最好是:(1. 支持断点续传 2. 支持全部属性保存)
sudo rsync -acAHXPhv –delete –delete-excluded –exclude=/dev/* –exclude=/proc/* –exclude=/sys/* –exclude=/tmp/* –exclude=/tmp2/* –exclude=/run/* –exclude=/mnt/* –exclude=/media/* –exclude=/home/* –exclude=/home2/* –exclude=/opt/* –exclude=/tftpboot/* –exclude=/srv/* –exclude=/lost+found –exclude=/ggg –exclude=/home2 / /mnt/
问题不是发生在复制文件上,而是在创建的目标文件系统的根目录权限上,cp 和 rsync 命令应该都不会修改这个权限吧。
我以前用cp -a 很多备份系统没出现我你说的问题! /的权限是由挂在这里的文件系统里面的顶层目录权限决定的! 几乎没什么机会改这个,除非:/dev/sdc3 /mnt ; chmod 0700 /mnt ( /dev/sdc3 是root分区 )
你说的对,目标文件系统我是使用gnome的磁盘管理工具创建的,所以默认的 owner 就是当时的用户(非root),而权限是 0700,这就是问题的原因。