내구성이 뛰어난 데비안 라이브 HDD

내구성이 뛰어난 데비안 라이브 HDD

하드 드라이브에서 부팅된 데비안 ISO에 데이터를 저장할 수 있는 영구 라이브 부팅을 하고 싶습니다. 그래서 debian-live를 다운로드했습니다.(여기), 실시간 시스템으로 부팅할 수 있도록 grub 항목을 수정합니다: `

menuentry "Debian modified" {
  set iso_path="/live-boot/debian-live.iso"
  export iso_path
  loopback loop $iso_path
  set root=(loop)
  set loopback="findiso=${iso_path}"
  export loopback
  linux /live/vmlinuz-5.10.0-13-amd64 boot=live persistence components keyboard-layouts=de splash verbose "$loopback"
  initrd /live/initrd.img-5.10.0-13-amd64
}

라이브 시스템으로 부팅할 수 있지만 데이터를 저장하려고 하면 재부팅 후 데이터가 손실됩니다. 여기 grub 항목에서 내가 뭔가 잘못하고 있는 걸까요?

이것은 당신에게도 효과가 있을 수 있습니다. df -ha라이브로 실행하면 다음과 같은 출력이 표시됩니다(관련 부분은 축약됨).

FS        Size  Used   Avail  Use    Mounted on
/dev/sda1 ...   ...    ...    ...    /run/live/persistence/sda1  <= my main partition (also from where the boot is happening)
/dev/loop0 ..   ...    ...    ...    /run/live/medium
/dev/loop1 ..   ...    ...    ...    /run/live/rootfs/filesystem.squashfs
tmpfs     ...   ...    ...    ...    /run/live/overlay
overlay   ...   ...    ...    ...    /
tmpfs     ...   ...    ...    ...    /usr/lib/live/mount
/dev/loop0 ..   ...    ...    ...    /usr/lib/live/mount/medium
/dev/loop1 ..   ...    ...    ...    /usr/lib/live/mount/rootfs/filesystem.squashfs
/dev/sda1  ..   ...    ...    ...    /usr/lib/live/mount/persistence/sda1
tmpfs     ...   ...    ...    ...    /usr/lib/live/mount/overlay

라이브 부팅 시 fstab은 다음과 같은 출력을 제공합니다.

overlay / overlay rw 0 0
tmpfs /tmp tmpfs nosuid,nodev 0 0

반품 mount | grep overlay:

tmpfs on run/live/overlay type tmpfs (rw,noatime,mode=755)
overlay on / type overlay (rw,noatime,lowerdir=/run/live/rootfs/filesystem.squashfs/,upperdir=/run/live/overlay/rw,workdir=/run/live/overlay/work)
tmpfs on /usr/lib/live/mount/overlay type tmpfs (rw,noatime,mode=755)

또한 영구 저장소를 upperdir/workdir로 사용하여 영구 파티션(sda1)에 직접 오버레이를 수동으로 마운트하려고 시도했는데, 그 결과

overlay on / type overlay (rw,noatime,lowerdir=/run/live/rootfs/filesystem.squashfs/,upperdir=/run/live/persitence/sda1/rw,workdir=/run/live/persistence/sda1/work

물론 영구 파티션에 이러한 디렉터리를 만들었습니다 ;-) ...하지만 여전히 데이터가 유지되지 않으며 어떻게 해야 할지 모르겠습니다.

그렇다면 live-iso에 데이터를 저장하고 재부팅 시 저장된 데이터가 손실되지 않도록 하려면 어떻게 수정해야 합니까?

답변1

원래 제안

당신은 그것을 사용할 수 있습니다mkusbu현재 Debian 라이브 ISO 파일에서 영구 라이브 드라이브를 만듭니다.

  • mkusb-dus를 선택하고 "dus-persist"를 선택하세요.

    이 "클래식 mkusb" 접근 방식은 분할된 테이블과 여러 파티션을 생성합니다. 자세한 내용은 다음을 참조하세요.이 링크그리고그 링크.

  • mkusb-plug를 선택하고 "영구"(또는 mkusb-sedd의 "--pder")를 선택합니다.

    이 방법은 sed를 사용하여 iso 파일을 "세미 복제"하고 persistentiso 파일에서 대상 장치로 복제된 항목에 부팅 옵션을 추가합니다. 그 외에도 iso 파일 복사본 "뒤에 있는" 드라이브의 나머지 부분은 지속성을 제공하는 파일 시스템으로 포맷됩니다.

그것은 간단해야합니다. mkusb-dus그래픽 모드와 텍스트 모드에서 작업할 수 있습니다. mkusb-plug그래픽 모드에서만 사용할 수 있지만 텍스트 모드에서 수동을 사용하면 와 mkusb-sedd동일한 결과를 얻을 수 있습니다 .mkusb-plugmkusb-sedd이 링크.

OP와 논의 후 제안 수정

(댓글에서) 토론 후 Ubuntu Server가 있는 드라이브에 영구 라이브 Lubuntu 시스템을 생성하려면 다음 방법을 권장합니다. (다른 Ubuntu 버전을 선호할 수도 있습니다. 현재의 모든 공식 Ubuntu 데스크탑 시스템과 커뮤니티 버전이 여기에서 작동해야 합니다.)

  • 압축을 풀어 Ubuntu Server 22.04 LTS를 만들었습니다.jammy-사전 설치된-서버-amd64.img.xzSSD에 복제하세요. mkusb를 사용하는 것은 매우 편리합니다.

  • Ubuntu Server로 부팅하여 제대로 작동하는지 확인했습니다. 사용자 이름은 "ubuntu"입니다. 그 과정에서 비밀번호도 "ubuntu"에서 다른 비밀번호로 변경했습니다. 서버는 전체 드라이브를 사용하도록 루트 파티션을 자동으로 확장합니다.

  • 지속성을 위해 파일을 사용하는 좋은 방법은 보이지 않습니다. 대신 다른 드라이브에서 부팅하고 gpartedUbuntu Server의 루트 파티션을 축소하고(끝 부분을 이동하여) ext4 파일 시스템이 생성된 할당되지 않은 공간에 새 파티션을 만드는 것이 좋습니다. 그리고 라벨을 붙입니다 writable.

    여기에 이미지 설명을 입력하세요.

    자물쇠 기호를 볼 수 있습니다 /dev/sdc1. 파티션이 마운트되었으며 축소하기 전에 마운트 해제해야 함을 나타냅니다.

  • 그런 다음 Ubuntu Server로 부팅하고 Live홈 디렉터리에 디렉터리를 만듭니다./home/ubuntu/Live

  • 예를 들어 lubuntu-22.04-desktop-amd64.iso, sftp이 디렉토리로 이동합니다.

  • 영구 실시간 시스템을 위한 메뉴 항목 생성

    sudo nano /etc/grub.d/40_custom
    

    그리고 아래와 같이 만들어 보세요

    #!/bin/sh
    exec tail -n +3 $0
    # This file provides an easy way to add custom menu entries.  Simply type the
    # menu entries you want to add after this comment.  Be careful not to change
    # the 'exec tail' line above.
    #
    menuentry "Lubuntu 22.04 ISO" {
       set isofile="/home/ubuntu/Live/lubuntu-22.04-desktop-amd64.iso"
       # or set isofile="/<username>/Live/lubuntu-22.04-desktop-amd64.iso"
       # if you use a single partition for your $HOME
       rmmod tpm
       search --set=root --fs-uuid cc633893-7fde-4185-b852-7b886f51ff7f
       loopback loop ($root)/$isofile
       linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject persistent
       initrd (loop)/casper/initrd
     }
     set timeout_style=menu
     set timeout=10
    

    참고하세요

    • cc633...대상 장치를 안정적으로 식별하기 위해 Ubuntu Server 루트 파티션의 UUID를 사용합니다 . 이 UUID는 다음을 통해 찾을 수 있습니다.

       lsblk -o name,size,uuid
      

      특정 시스템과 일치하도록 이 UUID를 수정해야 합니다.

    • persistent"표준" 라이브 Linux 명령줄에 추가되었습니다.

    • 마지막 두 줄은 grub 메뉴를 표시하는 "어려운" 방법을 제공합니다.

  • 이러한 편집 내용은 다음을 /etc/grub.d/40_custom실행하여 활성화됩니다.

    sudo update-grub
    

    다음에 부팅(또는 재부팅)할 때 이 사실을 알 수 있습니다.

관련 정보