현재 관리자에 sudo 권한 부여하기
루트모드로 nano /etc/sudoers로 파일 열어서 “<사용자이름> ALL=(ALL) ALL “ 추가하기
가상머신에서 복사 붙여넣기 허용하기
참고: https://programfrall.tistory.com/100
요약: 클립보드 양방향 공유 + 게스트 확장 이미지 삽입
터미널 실행 안되는 버그
Language region English(캐나다)로 설정 → 터미널 실행가능
Ghost 공식 installer로 가상머신에 커널 설치하고 컴파일하기
깃허브에서 커널 리포지터리를 클론받지 말고 아래 명령어로 설치해야함
sudo apt update && sudo apt install git make && git clone $ <https://github.com/Swire42/ghost-installer> && cd ghost-installer && sudo make
참고: ‣
grub 부트로더 사용하여 컴파일한 커널로 부팅하기 (시작할때 esc 눌러서 사진과 같은 부팅모드 진입하기)
아래 사진에서 컴파일 한 커널 부팅파일의 이름으로 바꿔줘야함 → 5.15.0을 linux.5.11.0+으로 바꿔야함


임시로 위와 같이 이렇게 진행하면되고 추후에 5.11.0으로 부팅하는 GRUB 부팅 옵션을 만들어서 진행하면 됨
GRUB 부팅옵션 만들기
$ sudo nano /etc/grub.d/40_custom
# 작성 창에서 사용자 상황에 맞게 작성 (아래는 예시)
menuentry "My Custom Linux for Ghost" {
set root='hd0,msdos5'
search --no-floppy --fs-uuid --set=root 629e4827-1292-42d5-8523-03b959e8d18f
linux /boot/vmlinuz-5.11.0+ root=UUID=629e4827-1292-42d5-8523-03b959e8d18f ro quiet splash $vt_handoff
initrd /boot/initrd.img-5.11.0+
}
업데이트, 재부팅
$ sudo update-grub
$ sudo reboot
가상머신에 ghost-userspace 코드 클론 받기
$ git clone <https://github.com/google/ghost-userspace>
컴파일 도구인 바젤 설치
# 1단계: Bazel 배포 URI를 패키지 소스로 추가
$ sudo apt install apt-transport-https curl gnupg -y
$ curl -fsSL <https://bazel.build/bazel-release.pub.gpg> | gpg --dearmor >bazel-archive-keyring.gpg
$ sudo mv bazel-archive-keyring.gpg /usr/share/keyrings
$ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] <https://storage.googleapis.com/bazel-apt> stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
# 2단계: Bazel 설치 및 업데이트
$ sudo apt update && sudo apt install bazel
ghOSt 파일 시스템인 ghostfs 마운트하기
$ sudo mount --source ghost --target /sys/fs/ghost -t ghost
# 위 명령어 후 아래와 같이 폴더가 표시되어야 한다.
$ ls /sys/fs/ghost
ctl version
바젤 5.4.0으로 수정하기 (7.x 에서 다운그레이드)
$ sudo apt install bazel-5.4.0
$ sudo ln -s /usr/bin/bazel-5.4.0 /usr/bin/bazel
$ sudo rm /usr/bin/bazel
2가 안되면 3 실행하고 다시 2 실행
sudo 권한으로 스케줄링 실행하기 (아래는 스케줄러가 o1_agent라고 가정)
# 0~3번 코어에서 스케줄링 실행
$ sudo bazel-bin/o1_agent --ghost_cpus 0-3
# 스케줄러 실행시 디버깅 출력문 log.txt에 기록하는 명령어
$ sudo bazel-bin/o1_agent --ghost_cpus 0-3 --verbose=3 > log.txt 2>&1
# 루트 계정 진입
$ su
# 루트 계정에서 잔존하는 enclave 삭제
$ for i in /sys/fs/ghost/enclave_*/ctl; do echo destroy > $i; done