ventoy로 OS 설치하기 그리고 튜닝

1.
USB 부팅을 위해 주로 사용하는 프로그램은 rufus와 balenaEtcher입니다. 두 프로그램 모두 훌륭한 프로그램입니다. 딱 하나 새로운 OS를 설치할 때마다 USB를 다시 만들어야 하는 점이 아쉬웠습니다. 우연히 유투브를 보는데 ventoy라는 프로그램을 소개하네요. ventoy는 UBS 디스크에 MBR

각 영역에 대한 Ventoy의 설명입니다.

  • Why MBR

MBR is the only selection in order to support Legacy BIOS system.

  • About Part1

By default, Ventoy select exFAT filesystem for the main partition to hold iso files. exFAT has better compatibility on Windows/Linux/Mac and exFAT is suitable for USB stick.
From Ventoy-1.0.11, you can reformat the 1st partition with other filesystem, exFAT/FAT32/NTFS/UDF/XFS/Ext2/Ext3/Ext4 are supported.
It should be noted that, if you choose XFS/Ext2/Ext3/Ext4, the USB will be unavaliable on Windows and can not be used to install Windows. But if you only use Linux that will be a good choice, because XFS/Ext2/Ext3/Ext4 will have better performance in Linux.

  • About Part2

There must be an EFI System Partition with FAT filesystem and that’s the mandatory requirements of UEFI specifications. So this partition is created to hold EFI boot file and other files nesscessy to Ventoy. These files are very small, so 32MB is enough. Besides, the EFI partition can be at part1 also, but I set it at part2 just because that in some version of Windows like Windows 7, only the first partition of the USB drive is visable to the system. And that’s good for Ventoy’s protection.
This partition is very small and used by ventoy, so you better not change anything in this partition.

  • About 1MB GAP

This gap is used to hold the bootloader in Legacy BIOS system.

이중에서 부팅순서상 제일 먼저 확인하는 MBR에 대한 설명입니다.

마스터 부트 레코드, MBR은 운영체계가 어디에, 어떻게 위치해 있는지를 식별하여 컴퓨터의 주기억장치에 적재될 수 있도록 하기 위한 정보로서 하드디스크나 디스켓의 첫 번째 섹터에 저장되어 있다.MBR은 파티션 섹터 또는 마스터 파티션 테이블이라고도 불리는데, 이유는 하드디스크가 포맷될 때 나뉘어지는 각 파티션의 위치에 관한 정보를 가지고 있기 때문이다.MBR은 메모리에 적재될 운영체제가 저장되어 있는 파티션의 부트 섹터 레코드를 읽을 수 있는 프로그램을 포함하고 있는데, 부트 섹터 레코드에는 다시 운영체계의 나머지 부분들을 메모리에 적재시키는 프로그램을 담고 있다.
MBR과 부트로더의 개념 정리중에서

Ventoy를 설치하거나 사용하는 것은 어렵지 않습니다. 한글자료도 많기 때문에 생략합니다.

2.
Ventoy를 찾은 이유는 서버에 OS를 설치하기 위함입니다. 그동안 Clear Linux나 Centos 8.4를 사용하였는데 이번 기회에 Rocky Linux 8.7을 사용하기로 하였습니다. 그래서 Ventoy로 부팅 USB를 만든 다음 iso 파일을 복사해서 OS를 설치할 계획입니다. 이왕 설치하면서 다양한 OS 이미지를 다운로드해서 시험해보기로 하였습니다. 시험대상인 OS는 다음과 같습니다.

리눅스 커뮤니티 하모니카(HamoniKR)
Pop!_OS by System76
Oracle linux
Solus
Rocky Linux

위에서 시험한 OS중 하모니카 리눅스의 경우 normal mode일 경우 아무런 반응이 없고 grub2 mode일 경우 “Invalid magic number”때문에 설치할 수 없었습니다. 나머지 OS의 경우 Test환경까지 나오는 것을 확인하였습니다. 이제 Rocky Linux를 설치합니다. 이번에 수없는 동안 한번도 해보지 않은 일을 경험하였습니다. Ventoy로 부팅을 한 후 Rocky Linux를 설치화면에서 설정을 한 후 설치작업을 시작하였습니다. 일정 시간이 지난 후 다음과 같은 오류가 발생하였습니다. 혹시나 해서 몇 번을 해보았지만 증상이 같았습니다.

The following was filed automatically by anaconda:
anaconda 29.15 exception report
Traceback (most recent call first):
File “/usr/lib/python3.6/site-packages/dnf/base.py”, line 2484, in _select_remote_pkgs
_(“Some packages from local repository have incorrect checksum”))
File “/usr/lib/python3.6/site-packages/dnf/base.py”, line 1194, in download_packages
remote_pkgs, local_repository_pkgs = self._select_remote_pkgs(pkglist)
File “/usr/lib64/python3.6/site-packages/pyanaconda/payload/dnfpayload.py”, line 950, in install
self._base.download_packages(pkgs_to_download, progress)
File “/usr/lib64/python3.6/site-packages/pyanaconda/installation_tasks.py”, line 438, in run_task
self._task(*self._task_args, **self._task_kwargs)
File “/usr/lib64/python3.6/site-packages/pyanaconda/installation_tasks.py”, line 472, in start
self.run_task()
File “/usr/lib64/python3.6/site-packages/pyanaconda/installation_tasks.py”, line 304, in start
item.start()
File “/usr/lib64/python3.6/site-packages/pyanaconda/installation_tasks.py”, line 304, in start
item.start()
File “/usr/lib64/python3.6/site-packages/pyanaconda/installation.py”, line 369, in doInstall
installation_queue.start()
File “/usr/lib64/python3.6/threading.py”, line 864, in run
self._target(*self._args, **self._kwargs)
File “/usr/lib64/python3.6/site-packages/pyanaconda/threading.py”, line 291, in run
threading.Thread.run(self)
dnf.exceptions.Error: Some packages from local repository have incorrect checksum

원인을 찾아보았습니다. sha256 checksum값을 확인하라고 하는 팁이 있더군요. 그래서 웹에서 받은 파일의 값을 웹에 올려놓은 값과 비교하였습니다. 다르더군요. 한번도 경험하지 못한 일입니다.

# Rocky-x86_64-dvd1.iso: 12129927168 bytes
SHA256 (Rocky-x86_64-dvd1.iso) = 4827dce1c58560d3ca470a5053e8d86ba059cbb77cfca3b5f6a5863d2aac5b84

smallake@elementaryOS:/media/smallake/Data/Download$ sha256sum Rocky-8.7-x86_64-dvd1.iso
8bffd5ea84c64bb40540c61d82503147a6e39b802becc8e0c788a7221b845936 Rocky-8.7-x86_64-dvd1.iso

그래서 torrent로 해서 파일을 받았습니다.값을 비교하니 같았습니다.

smallake@elementaryOS:/media/smallake/Data/VVV/Warez/Rocky-8.7-x86_64-dvd1$ sha256sum Rocky-8.7-x86_64-dvd1.iso
4827dce1c58560d3ca470a5053e8d86ba059cbb77cfca3b5f6a5863d2aac5b84 Rocky-8.7-x86_64-dvd1.iso

이상태에서 Ventoy USB를 넣고 Rocky Linux의 파일을 삭제하였습니다. 그리고 새로운 ISO 파일을 복사하였습니다. 이 때부터 문제가 발생하네요. 같은 파일이름인지 몰라서 Ventoy가 Rocky Linux 이미지를 두개로 인식합니다.

Rocky-8.7-x86_64-dvd1.iso
Rocky-8.7-x86_64-dvd1_123456.iso

와 같은 식입니다. 관련한 Ventoy의 자료입니다만 정확히 일치하지 않습니다. 문서상으로는 일반 파일시스템처럼 복사하라고 합니다. 물론 삭제라는 단어는 없습니다.ㅠㅠㅠㅠ

By default, Ventoy will find all the iso files in the USB drive and list them together in alphabet order. This is very intuitive when there are not so many iso files.
However, if you put many many iso files in the USB drive the list will be very long, and it will be very inconvenient to find a specific file.
Besides, you may put some ISO files in the same folder according to certain categories and the alphabetically list will disrupt the categories.

그리고 Ventoy를 사무용 리눅스에서 마운트를 한 후 umount 하였는데 마운트 디렉토리가 없어지지 않네요..혹시나 구글링을 하니까 이런 답변이 있습니다.

In my experience, sometimes I delete ISOs from the Ventoy folder but I don’t remove it from the trash can, so I can’t see it in the folder but Ventoy detects the ISO when I boot it. Some file managers asks if you want to remove files from the trash before unmounting but others don’t. Hope it helps!
How do i delete ISOs from Ventoy?중에서

삭제후 했던 작업을 복기해보면 trash에서 iso파일을 지우지 않았네요. 그래서 Elementary OS와 Ventoy는 파일이 그대로 인 것으로 판단한 듯 합니다. 조금더 시험을 해야 하지만 설치후 튜닝이 급해서 ㅠㅠㅠㅠ

3.
Rocky Linux 튜닝입니다. Centos나 Clear Linux에서 했던 튜닝과 다르지 않습니다. 기본적으로 Low Latency가 목적이기 때문에 CPU가 딴 작업을 하지 못하도록 하는 값을 Kernel parameter로 추가합니다. 2020년에 올라온 Low latency tuning guide 글이 그중 가장 최근입니다. 혹시나 최근에 달라진 것이 있는지 확인해보니까 Configuring Linux to stabilise latency가 눈에 들어옵니다. 변경한 값을 적용하여 결과를 그래프로 소개하네요. Cloud 환경이 일반화하면서 관련한 튜닝가이드도 나와 있더군요.

Performance Tuning Handbook: A free guide to reducing scheduler jitter

Download (PDF, 284KB)

그리고 Redhat의 문서를 읽었는데 Linux Low Latency Tuning 2015에서 소개하였던 자료와 Optimizing RHEL 8 for Real Time for low latency operation입니다.

Download (PDF, 741KB)

문서중 그동안 하지 않았던 부분이 눈에 들어옵니다. vm.stat_interval입니다.

The kernel’s virtual memory management subsystem tabulates statistics every second by default. These statistics are visible in vmstat output or /proc/meminfo. Calculating these statistics occurs within a kernel timer tick and is unbounded. Reduce the frequency by which the kernel updates virtual memory statistics by setting the vm.stat_interval sysctl to a higher value. In the example below, the kernel updates virtual memory statistics only once every 10 seconds. That means that vmstat outputs the same values for 10 consecutive seconds. The trade-off is granularity of virtual memory statistics for improved determinism:
#sysctl vm.stat_interval=10

또다른 부분은 atime과 관련합니다.

Why disable atime?

atime is access time, which isn’t that useful of a knowledge unless your scenario is highly specific. As you know, atime, ctime and mtime are kept for all the files – but some filesystems support an option of disabling atime, meaning that’s one operation that filesystem doesn’t need to track and therefore update on the disk when you’re accessing files (or listing directories). In modern operating systems, there might be hundreds or thousands of files read from each filesystem – and atime flag means kernel has to update access time for each such file and commit that updated time to disk for every access operation. That’s expensive, especially when you’re accessing the same files very frequently – OS will probably cache the file contents, so that’s not going to be too I/O heavy, but would still have to update access time on disk for such access.Disabling atime is a great way to improve I/O performance on filesystems with lots of small files that are accessed freqently.
ZFS Performance Basics: Disable atime중에서

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.