XCP之重新編譯核心 增加IMA

2021-06-03 00:42:17 字數 1984 閱讀 3586

因為實驗室專案需要,要在xcp1.1上的dom0重新編譯核心,把ima部分新增進去。

在完成這個任務時,碰到了許多問題,具體問題、解決方法及步驟如下:

1. xcp的dom0預設只分配了4gb的空間,如果要在上面編譯核心,這點容量顯然是不夠的。解決方法:使用lvm方式分配乙個lv,在分配的lv上編譯核心。步驟:

a. 分配lv(第一次)

lvcreat -l 20g -n for_dom0 vg_xenstorage-d49b8a25-73f2-8cb7-93a3-e0d8b81054d8

b. 分割槽lv的格式化

mke2fs -j /dev/vg_xenstorage-d49b8a25-73f2-8cb7-93a3-e0d8b81054d8/for_dom0

c. 把lv掛載到指定目錄

mount //dev/vg_xenstorage-d49b8a25-73f2-8cb7-93a3-e0d8b81054d8/for_dom0 /mnt/lvm_dom0

d. 啟用vg (第一次不用,當lv失效時,掛載前啟用)

vgchange -a y vg_xenstorage-d49b8a25-73f2-8cb7-93a3-e0d8b81054d8

2. ima配置

把核心原始碼在lv上解壓後,進入原始碼目錄。

a. cd drivers/char/tpm

vim tpm_tis.c:

static int interrupts=1 -> static int interrupts=0;

static int force -> static int force=1

b. make menuconfig

select ima

# configure other relative options

d. make

make modules

make modules_install

make install

3. bootloader的配置遇到的問題及解決方法

由於xcp自帶了grub0.97版本,又沒有使用它做引導,一開始傻傻的使用grub-install /dev/sda 命令重新配了一下grub,還把grub裝在了mbr和/dev/sda1的超級塊中了(分別在grub shell中,使用setup (hd0) 和setup(hd0,0) )。後來才發現xcp原來用的是extlinux的啟動引導器......

後果是重啟後,進入了grub shell,怎麼配置也進不了系統。解決方法是:

a. 使用u盤引導進u盤的ubuntu(安裝ubuntu時的try ubuntu選項)

b. crtl+alt+t進入shell終端,重配root密碼(sudo passwd)

c. su進入root shell後,使用fdisk -l檢視需要修復引導盤的路徑,我這裡是/dev/sdb1

d. 把/dev/sdb1 掛載在/mnt上: mount /dev/sdb1 /mnt

e. 給/mnt/boot/目錄下的chain.c32建立硬鏈結extlinux

f. 重建啟動引導程式:  extlinux -i /mnt/boot

g. 重啟,問題解決,可以重新進入xcp server了

4. bootloader配置(編輯extlinux.conf)

a. 進入/boot路徑,編輯extlinux.conf

label ima

kernel mboot.c32

5. 編輯 /etc/fstab

加入一行:

securityfs      /sys/kernel/security    securityfs      rw      0        0

6. 重啟後,可以檢視度量列表了。

vi /sys/kernel/security/ima/ascii_runtime_measurements

重新編譯Kali Linux核心

有時你可能想新增必要的驅動 補丁 kali linux核心裡沒有的功能。如下的教程描述如何根據你的需要快速地修改和編譯kali linux核心。請注意目前預設的kali linux核心已經打過了大量的無線注入補丁。u6 c9 w,y o4 b4 h7 j f 安裝編譯所需的依賴 h 7 e v q....

linux 核心重新編譯

以linux 2.6.38.4.tar.bz2原始碼包為例 mv home zhb downloads linux 2.6 38.4 tar.bz2 usr src tar tar xvf linux 2.6 38.4 tar.bz2 使用make install 一步到位或者繼續使用下面的指令 m...

ubuntu環境下重新編譯核心

由於除錯核心 驅動或工作需要,有可能需要對ubuntu下的核心進行重新編譯,本文對核心重新編譯過程進行簡單分析,在進行重新編譯核心前你可以通過uname a來確認你的linux系統的當前版本。2.進入到原始碼存放的路徑 cd usr src,對原始碼進行解壓縮 tar xvf linux sourc...