当我构建/编译内核时,我从 /home/username/build 进行。完成后,/home/username/build 目录中显然有一个内核目录。这个目录很大!我的问题是,成功启动刚刚编译的内核后,删除该目录是否安全?我应该将该目录的部分或全部移动到我的 / 分区吗?我从未使用 root 用户帐户或从 / 分区编译/构建过内核。如果我应该以 root 用户身份构建它,那么我应该从 / 分区的哪个位置进行构建?
抱歉,我知道这不止一个问题……
答案1
构建内核的传统位置是/usr/src/linux-{version}
,从那里有一个符号链接到,/usr/src/linux
以便查找 Linux 内核头文件的源代码。不过,其他位置(例如您自己的主目录)应该也可以。我最近没有检查是否有一些较新的位置成为标准,因为我很久以前就知道了。
是的,内核文件和编译后的内核占用大量空间。除非您使用的是空间非常受限的介质(例如带有小型 MMC“磁盘”的平板电脑或上网本),否则我建议您保留编译后的内核——至少保留一段时间。我经常发现本地编译的内核似乎运行良好,但随后我遇到了问题——缺少驱动程序或需要调整我忽略的编译时选项。在这种情况下,调整一个设置并重新编译(这可能只涉及编译一个或两个文件而不是整个内核,具体取决于需要调整的内容)通常比从头开始要快得多,也容易得多。
make clean
删除整个目录树的折中替代方法是在内核目录中执行。这应该会删除所有对象 ( *.o
) 文件,同时保留源代码和您的唯一内核配置。您最终仍会使用磁盘空间,但远不及编译后的内核所占用的空间。
至于使用的帐户,我使用我的普通用户帐户来编译内核;但需要root
(或使用sudo
)将内核文件复制到/boot
,将模块复制到/lib/modules
(通过make modules_install
),并创建初始 RAM 磁盘(通过因发行版而异的命令)。不过,有很多替代方法来编译和安装内核,其中一些有其他需求。此外,要写入/usr/src
,您必须root
在大多数发行版上。如果您以普通用户身份进行编译,这将需要调整权限,无论是/usr/src
整体还是 Linux 内核树后您将其提取为root
。 (或者我想您可以以普通用户身份将其提取到其他地方,然后将其移动到/usr/src
。root
)这两种方法都存在安全隐患,特别是在多用户系统上。