Skip to content

Linux 이미지 제작 및 업로드 (신창 포함)

신규 업로드 방식: linuxupload 도구(diskless_upload.sh)를 사용합니다. 명령 한 줄로 드라이버 빌드, 디스크 파티션, 부트로더 설치, 시스템 업로드까지 마법사 방식으로 처리합니다. x86_64 및 신창 멀티 아키텍처(arm64 / loongarch64 / mips64el / riscv64)를 지원하며, uname -m에 따라 알맞은 바이너리를 자동 선택합니다.

1) 운영체제를 정상적으로 설치

물리 머신 또는 가상 머신에 평소처럼 Linux를 설치합니다(Kylin, UOS, openEuler, Anolis 등 신창 시스템 포함). 기본 설정을 마치고 필요한 소프트웨어를 설치합니다.

2) 도구 받기 및 압축 해제

Linux 패키징 도구 linuxupload.tar.gz를 다운로드하여 설치된 Linux 시스템에 복사한 뒤 압축을 풉니다:

도구는 고객 서비스에 문의하여 받으세요.

bash
mkdir linuxupload
tar -xzf linuxupload.tar.gz -C linuxupload
cd linuxupload
ls -lah

압축 해제된 패키징 도구

내용 설명: diskless_upload.sh가 업로드 메인 스크립트입니다. bin/에는 아키텍처별 바이너리(vdmount / vdclient / rb_client 등)가, efi/·grub/·scripts/·newvhd/에는 부팅 및 클라이언트 파일이 들어 있습니다.

3) 업로드 도구 실행

⚠️ 신창 시스템의 보안 강화에 대하여: Kylin, UOS, openEuler, Anolis 등 신창 시스템은 기본적으로 보안 강화(KYSEC, SELinux, 개발자 모드 서명 검증 등)가 켜져 있습니다. 이로 인해 두 가지 문제가 발생합니다:

  1. 권한 차단 — 드라이버 빌드, 파티션, 디스크 쓰기 등이 곧바로 차단될 수 있음;
  2. 재스캔으로 인한 업로드 지연 / 멈춤(더 미묘함) — 예를 들어 Kylin의 KYSEC 재스캔 데몬은 네트워크 디스크에 기록된 각 파일을 측정하기 위해 방금 쓴 데이터를 네트워크 너머로 통째로 다시 읽어, 대역폭을 모두 차지해 업로드 쓰기를 굶깁니다. 증상은 업로드가 중간까지 진행되다가 속도가 급락하거나 0이 되어 멈춘 것처럼 보이는 것입니다. 업로드가 도중에 진행을 멈추면 거의 항상 보안 메커니즘의 재스캔이 원인이며, 비활성화하면 회복됩니다.

신규 diskless_upload.sh는 이를 자동으로 처리합니다: 업로드 전에 KYSEC를 일시적으로 비활성화하고, 재스캔 데몬을 중지하며, 일반적인 백신(QAX / 360 / Kylin avserver / ClamAV 등)을 일시 정지하고 화면에 알림을 표시합니다. 대부분의 경우 수동 작업이 필요 없습니다.

자동 처리가 사용 시스템을 포함하지 못하거나(best-effort), 업로드가 여전히 차단되거나 / 도중에 느려지는 경우, 스크립트 실행 전에 아래 표에 따라 수동으로 보안을 비활성화하세요(모두 root / sudo 필요):

신창 시스템보안 메커니즘비활성화 / 진입 방법
Kylin / NeoKylin(V10, V11, 데스크톱 & 서버)KYSEC(麒麟 보안)터미널에서 sudo setstatus disable 실행 시 임시 비활성화. -p를 붙이면 영구 적용(sudo setstatus disable -p, 재부팅 후에도 유지). 서버 버전은 sudo security-switch --set custom도 가능. 필요하면 GRUB 부팅 파라미터의 security=kysec를 빈 security=로 변경.
UnionTech UOS개발자 모드제어 센터 → 일반 → 개발자 모드에서 온라인 활성화(UnionID 로그인) 또는 오프라인 활성화(기기 정보 내보내기 → 오프라인 인증서 다운로드 후 가져오기). 활성화 후 터미널에서 sudo passwd root로 root 비밀번호 설정. 참고: 개발자 모드는 단방향 작업으로, 서명 검증이 비활성화되며 되돌릴 수 없습니다.
deepin개발자 모드 / rootUOS 개발자 모드와 동일. 또는 sudo passwd root로 비밀번호 설정 후 su -로 root 전환.
openEulerSELinux임시: sudo setenforce 0(permissive 설정). 영구: /etc/selinux/config를 편집해 SELINUX=disabled로 설정 후 재부팅.
Anolis / 레드햇 계열(RHEL, CentOS, Rocky, Alma 등)SELinuxopenEuler와 동일: sudo setenforce 0(임시) / /etc/selinux/configSELINUX=disabled로 변경 후 재부팅(영구).

업로드 후 보안 강화를 복원하려면: Kylin은 sudo setstatus enable -p, SELinux는 /etc/selinux/configSELINUX=enforcing으로 되돌리고 재부팅. UOS 개발자 모드는 한 번 켜면 되돌릴 수 없습니다. 참고하세요.

root 권한으로 스크립트를 실행합니다:

bash
sudo ./diskless_upload.sh

스크립트는 본 머신의 아키텍처를 자동 인식하고, 커널에 맞는 드라이버를 네트워크로 빌드·로드한 뒤 업로드 마법사를 엽니다. 안내에 따라 각 항목을 입력합니다(각 항목 입력 후 Enter):

업로드 구성 마법사

항목설명
[1/7] 서버 IP 주소vDisk 부팅 서버의 IP
[2/7] 관리자 사용자 이름서버 관리자 계정
[3/7] 관리자 비밀번호서버 관리자 비밀번호
[4/7] 이미지 이름생성할 이미지 이름
[5/7] 이미지 크기 (GB)가상 디스크 크기. 현재 시스템 사용 용량 이상 권장
[6/7] 부팅 모드1 = BIOS(레거시) / 2 = UEFI. 대상 머신과 일치해야 함
[7/7] 아키텍처 접미사선택 사항; Enter를 누르면 기본값(uname -m으로 자동 감지). Huawei Kunpeng, Phytium 등 아키텍처는 같지만 전용 부팅 디스크가 필요한 개조 하드웨어는 사용자 지정 접미사(예: kunpeng, ft2000)를 입력할 수 있으며, 배포 ISO / 부팅 디스크의 이름과 보고되는 아키텍처를 결정합니다

4) 구성 확인 후 업로드 시작

구성 요약이 표시됩니다. 내용을 확인한 뒤 Y를 입력하고 Enter를 눌러 시작합니다:

구성 요약

확인 후 스크립트는 자동으로 다음을 수행합니다: 가상 디스크 초기화 및 파티션 → 포맷 → 부트로더 설치(선택한 BIOS/UEFI 기준) → 디스크리스 부팅 initrd 빌드 → rsync로 로컬 시스템을 가상 디스크에 업로드. 진행 상황과 업로드 백분율이 화면에 표시됩니다.

5) 업로드 완료

업로드가 완료되면 작업 메뉴가 나타납니다:

  • r 시스템 재부팅
  • s 시스템 종료
  • c 취소(뒤로)

이제 이미지가 서버에 업로드되었으며, 클라이언트 머신의 디스크리스 부팅에 할당할 수 있습니다.

6) 배포 ISO로 부팅 디스크를 만들어 다른 컴퓨터 배포하기

사용 상황: 대상 머신에 PXE NIC ROM이 없거나 / 네트워크 부팅 순서를 변경하기 어려운 경우, 또는 "꽂으면 바로 설치"되는 부팅 디스크로 대량 배포하려는 경우. 업로드 중 스크립트가 본 머신 커널로 배포 ISO를 즉석에서 생성합니다. 이를 USB로 만들면 PXE도 BIOS 부팅 순서 변경도 없이 임의의 베어 머신을 부팅하여 배포할 수 있습니다.

6.1 생성된 ISO 찾기

업로드가 끝나면 화면에 ISO 경로가 표시됩니다. 파일 이름은 vdisk-deploy-<아키>.iso 형식입니다(예: vdisk-deploy-aarch64.iso, vdisk-deploy-x86_64.iso). 본 머신 커널 + 부팅 메뉴 + 드라이버를 포함하며 isohybrid 형식입니다(디스크에 굽거나 dd로 USB에 직접 쓸 수 있음).

⚠️ ISO는 아키텍처별입니다: arm64 ISO는 arm64 머신만, x86_64 ISO는 x86_64 머신만 부팅할 수 있습니다. 대상과 같은 아키텍처의 머신에서 생성한 ISO를 사용하세요.

6.2 ISO를 USB에 쓰기

⚠️ 반드시 DD(이미지) 모드로 써야 합니다 — ISO 모드는 절대 금지! 이 ISO는 grub-mkrescue로 만든 하이브리드 부팅 이미지로, 디스크 전체를 그대로(raw) 써야만 합니다. Rufus의 **기본 "ISO 이미지 모드"**로 쓰면 파일이 다시 패키징되어 부팅 시 error: unknown filesystem이 나며 grub rescue>로 떨어집니다. Rufus에서 START를 누른 뒤 "ISOHybrid image detected" 대화상자가 나오면 반드시 **Write in DD Image mode(DD 이미지 모드)**를 선택하세요. 또는 그냥 balenaEtcher를 사용하면 항상 raw로 쓰고 모드를 묻지 않아 가장 안전합니다. 쓰기 후 Windows가 USB 포맷이 필요하다고 하거나 작게/인식 불가로 보일 수 있는데 정상이며 포맷하지 마세요.

한 가지 방법을 선택하세요(USB의 기존 데이터는 지워집니다 — 반드시 올바른 장치를 선택하세요):

  • Windows: Rufus 또는 balenaEtcher로 ISO를 USB에 씁니다. Rufus가 "ISO / DD 모드"를 물으면 DD 모드를 선택하세요.

  • Linux / macOS: dd로 직접 씁니다(먼저 lsblk로 USB 장치 이름을 확인하고 /dev/sdX를 그것으로 바꾸세요 — 엉뚱한 디스크에 쓰지 마세요):

    bash
    sudo dd if=vdisk-deploy-aarch64.iso of=/dev/sdX bs=4M status=progress conv=fsync
  • ISO를 DVD에 구워서 사용할 수도 있습니다.

6.3 부팅 디스크로 다른 컴퓨터 배포하기

  1. 만든 USB를 대상 머신에 꽂고, vDisk 부팅 서버와 같은 네트워크에 있는지 확인합니다;
  2. 전원을 켜고 일회성 부팅 메뉴 단축키(메인보드에 따라 F12 / F11 / F9 / Esc 등)를 눌러 USB로 임시 부팅합니다(BIOS 기본 부팅 순서를 바꿀 필요도, PXE도 없음);
  3. 부팅 메뉴에서 컴퓨터 참가 / 부팅할 컴퓨터 선택을 고릅니다;
  4. 안내에 따라 이미지를 다운로드하여 설치합니다. 완료되면 해당 머신은 정상적으로 디스크리스 부팅할 수 있습니다;
  5. 같은 USB는 같은 아키텍처의 여러 머신에 재사용할 수 있습니다.

ISO는 BIOS와 UEFI 펌웨어 모두에서 부팅됩니다. 콘솔에서 대상의 "컴퓨터 유형 / CPU 아키텍처"는 실제 펌웨어 및 아키텍처와 일치해야 합니다(이기종 배포 참조).

주의 사항

업로드 전 과정에서 인터넷 연결이 필요합니다: 드라이버는 온라인으로 원격 빌드되므로 네트워크가 없으면 업로드를 완료할 수 없습니다.

부팅 모드(BIOS / UEFI)는 대상 클라이언트의 펌웨어와 일치해야 하며, 그렇지 않으면 클라이언트가 부팅되지 않을 수 있습니다.

신창 플랫폼의 멀티 아키텍처는 자동으로 처리되며, 스크립트가 uname -m에 따라 알맞은 바이너리를 선택합니다. 신규 스크립트는 업로드 전에 보안 강화를 자동으로 완화합니다(KYSEC 등, 위 3단계 참조). 그래도 업로드가 차단되거나 도중에 속도가 급락 / 0이 되어 멈춘 것처럼 보이면 대개 보안 메커니즘이 네트워크 디스크를 재스캔하는 것이 원인이므로, 3단계에 따라 수동으로 비활성화한 뒤 재시도하세요.

배포 ISO는 아키텍처별이며, 하나의 ISO는 같은 아키텍처의 머신만 부팅할 수 있습니다(6단계 참조).