复制安装 Linux 系统的一个教训

昨天从 ThinkPad 中复制整个 Arch Linux 到 Panasonic CF-19 的硬盘中,复制和安装 GRUB 过程都一切正常。

但是目标系统中不管是 root 用户还是在 sudoers 中的用户都无法正确执行 sudo 命令,错误大概是:

Unable to stat '/etc/sudoers': Permission Denied! ...

而且,GDM 服务也无法正常启动!

经过各种排查,包含重新安装 sudo 及相关的依赖,检查 /etc/sudoers 文件的权限等等都不能解决。

最后,在一个论坛找到了问题的原因:即根分区根目录的权限不对!

# chmod 0755 /

一切正常!

Over!

7 thoughts on “复制安装 Linux 系统的一个教训”

      1. 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/

        1. 问题不是发生在复制文件上,而是在创建的目标文件系统的根目录权限上,cp 和 rsync 命令应该都不会修改这个权限吧。

          1. 我以前用cp -a 很多备份系统没出现我你说的问题! /的权限是由挂在这里的文件系统里面的顶层目录权限决定的! 几乎没什么机会改这个,除非:/dev/sdc3 /mnt ; chmod 0700 /mnt ( /dev/sdc3 是root分区 )

            1. 你说的对,目标文件系统我是使用gnome的磁盘管理工具创建的,所以默认的 owner 就是当时的用户(非root),而权限是 0700,这就是问题的原因。

Leave a Reply

Your email address will not be published. Required fields are marked *