하드 드라이브에서 부팅된 데비안 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 파일을 "세미 복제"하고
persistent
iso 파일에서 대상 장치로 복제된 항목에 부팅 옵션을 추가합니다. 그 외에도 iso 파일 복사본 "뒤에 있는" 드라이브의 나머지 부분은 지속성을 제공하는 파일 시스템으로 포맷됩니다.
그것은 간단해야합니다. mkusb-dus
그래픽 모드와 텍스트 모드에서 작업할 수 있습니다. mkusb-plug
그래픽 모드에서만 사용할 수 있지만 텍스트 모드에서 수동을 사용하면 와 mkusb-sedd
동일한 결과를 얻을 수 있습니다 .mkusb-plug
mkusb-sedd
이 링크.
OP와 논의 후 제안 수정
(댓글에서) 토론 후 Ubuntu Server가 있는 드라이브에 영구 라이브 Lubuntu 시스템을 생성하려면 다음 방법을 권장합니다. (다른 Ubuntu 버전을 선호할 수도 있습니다. 현재의 모든 공식 Ubuntu 데스크탑 시스템과 커뮤니티 버전이 여기에서 작동해야 합니다.)
압축을 풀어 Ubuntu Server 22.04 LTS를 만들었습니다.jammy-사전 설치된-서버-amd64.img.xzSSD에 복제하세요. mkusb를 사용하는 것은 매우 편리합니다.
Ubuntu Server로 부팅하여 제대로 작동하는지 확인했습니다. 사용자 이름은 "ubuntu"입니다. 그 과정에서 비밀번호도 "ubuntu"에서 다른 비밀번호로 변경했습니다. 서버는 전체 드라이브를 사용하도록 루트 파티션을 자동으로 확장합니다.
지속성을 위해 파일을 사용하는 좋은 방법은 보이지 않습니다. 대신 다른 드라이브에서 부팅하고
gparted
Ubuntu 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
다음에 부팅(또는 재부팅)할 때 이 사실을 알 수 있습니다.