디스크 / HDD를 지속적으로 변경하여 USB 드라이브에 라이브 시스템을 만드는 방법


10

지속적으로 변경되는 USB 드라이브에 Ubuntu 라이브를 설치하려고했습니다. 그러나 다양한 이유로 (성능, 공간) USB 대신 HDD에 변경 사항을 쓰려고했습니다.

변경 사항은 시스템 (casper-rw)에 의해 마운트 된 ext3 파일 시스템이있는 파일 내에서 처리된다는 것을 알았습니다. 그러나 시작시 플래시 드라이브에서 자동 감지되는 것처럼 보입니다.

HDD에서 새 casper-rw 파일을 만들고 USB 드라이브의 Ubuntu 라이브 시스템을 HDD로 다시 라우팅하려면 어떻게해야합니까?

2015-07-14 편집 :

지금까지 답변 해 주셔서 감사합니다. 이들은 매우 흥미롭고 "실시간 시스템 영구 저장 기능"의 메커니즘을 더 잘 이해하고 문제를 해결하기위한 좋은 접근 방법을 보여줍니다. 불행히도 나는 호스트 시스템에 대한 액세스 및 / 또는 새로운 하드웨어에 대한 액세스에 대해 질문 할 때 명심하지 않은 몇 가지 제한 사항을 극복하려고 노력했습니다 (죄송합니다).

파티셔닝이 옵션이라면, 여기 에 명시된 답변 이 매우 좋다고 생각합니다 . 새 파티션을 작성하고 casper-rw 레이블을 지정하면 완료되었으므로 완료되었습니다 (작업이 훌륭했습니다. 테스트했습니다).

새로운 하드웨어를 구입하는 것이 옵션 인 경우 USB3.0 플래시 드라이브 (MLC 또는 SLC), 휴대용 HDD, eSATA 및 기타 옵션은 평균 USB2.0 플래시 드라이브보다 훨씬 우수한 성능을 제공합니다.

그래서 액세스가 제한된 디스크의 파티션 대신 캐스퍼 rw 파일을 만드는 방법이 있는지 궁금합니다 (또는 플래시 드라이브의 파일을 복사 / 링크).

이런 식으로 casper-rw 파일을 플래시 드라이브로 다시 복사하고 다시 플래시 드라이브로 다시 사용하거나 다른 컴퓨터로 옮기면 유연성이 뛰어나고 HDD를 최소한으로 변경하며 변경 내용을 쉽게 제거 할 수 있습니다. 시스템.


이것이 옵션인지 확실하지 않지만 데이터를 저장하기 만하면 라이브 파일 시스템 트리의 어딘가에 HDD 파티션을 마운트 할 수도 있습니다. 그래야 디스크에 특정 폴더 만 있습니다.
바이트 사령관

@ByteCommander 귀하의 의견에 감사드립니다. 불행히도 HDD 파티션은 나에게 옵션이 아니며 가능한 한 모든 것을 컴팩트하게 만들어서 데이터를 빠르고 간단하게 삭제할 수 있기 때문에 HDD의 단일 파일이 이상적입니다.
LS

파일 시스템의 이미지를 포함하는 파일 (예 : .iso 또는 .img 등)도 마운트 할 수 있어야합니다. 불행히도 나는 이것을 한 적이없고 그렇게하는 방법을 말할 수 없다 ...
Byte Commander

이것이 작동하지 않는지 어떻게 알 수 있습니까? 파일 이 casper-rw 입니까? 파티션루트에 있습니까? 나는 그 대신 (casper-rw라고 표시된 파티션이있는 HDD에서 지속성을 사용하여) 추가 단계를 기억하지 않습니다.
solsTiCe

귀하의 최신 편집은 귀하의 질문을 광범위하게 사용하기에는 너무 구체적으로 만듭니다 (제 대답은 ...) 불가능하지는 않지만 삽입시 [언 마운트]-[HDD와 동기화]-[마운트]에 대한 스크립트 및 udev 규칙을 생성하는 것을 의미합니다 그리고 [HDD와 동기화]를 마운트 해제 할 수 있지만 많은 작업이며 실제로 이와 같은 Q & A 사이트에는 적합하지 않습니다.
Fabby

답변:


4

라이브 미디어의 쓰기 가능한 파일 시스템 (casper-rw 파일)을 하드 디스크에 쉽게 넣을 수 있습니다. casper-rw 파일은 FAT 파티션에 있어야한다는 제한이 있습니다. 최신 머신 (UEFI)에는 모두 FAT EFI 파티션이 있지만 일반적으로 1G-4G casper-rw 파일을 보관하기에는 너무 작습니다. 충분히 큰 또 다른 FAT 파티션에서 각각 다른 라이브 미디어에 대한 casper-rw 파일을 보유하는 디렉토리를 만들 수 있습니다. sda11이 10G이고 / mnt / sda11에 마운트 된 10G FAT 파일 시스템이 있고 / A, / B, / C, / D 및 / E 디렉토리가 있다고 가정하십시오. 영구 미디어에 / A를 사용하여 casper-rw를 넣을 것이라고 가정합니다.

cd /mnt/sda11/A
dd if=/dev/zero of=casper-rw bs=1M  count=4096
mkfs.ext4 -F -O^has_journal -L casper-rw casper-rw

지속성으로 만든 라이브 미디어를 가져 와서 "persistent"라는 단어 뒤에 /boot/grub/grub.cfg 파일과 /syslinux/txt.cfg 파일을 편집하십시오.

"persistent-path=/A"

/boot/grub/grub.cfg ...

menuentry "Try Ubuntu without installing" {
    set gfxpayload=keep
    linux   /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- cdrom-detect/try-usb=true noprompt persistent persistent-path=/A
    initrd  /casper/initrd.lz
}

/syslinux/txt.cfg

default live
label live
menu label ^Try Ubuntu without installing
kernel /casper/vmlinuz.efi
append noprompt cdrom-detect/try-usb=true persistent persistent-path=/A file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash ---
label live-install
...

그게 다야. USB 미디어에서 casper-rw 파일의 이름을 바꾸거나 제거 할 필요조차 없습니다.


USB 미디어에 여유 공간이 있으면 하드 디스크의 casper-rw를 USB로 다시 복사하여 변경할 수도 있습니다.


영속 경로는 명시 적 디스크 참조를 허용하지 않으므로 모든 FAT 파티션에서 고유해야합니다. 1 개 또는 2 개의 FAT 파티션 (하나는 EFI 파티션)으로 테스트되었습니다. FAT 대신 ext2 또는 ntfs 파일 시스템에서 작동하지 않습니다. "persistent"와 같은 줄에 "toram"단어를 추가하면 느린 USB의 압축 파일 시스템이 램으로 복사되어 훨씬 더 나은 성능을 제공하지만 FAT 파티션에서 종료 문제가있는 것 같습니다. 깨끗하게 마운트 해제되지 않은 경우 (문제가 발생하지는 않지만 ...)


감사. 그것은 일을 훨씬 더 명확하게 만듭니다. 부팅 상태에서 ntfs를 인식 할 수 없다고 생각합니다 (오른쪽?). ntfs 파티션에서 casper-rw를 사용할 수 없습니다. 그래서 casper-rw라고 표시된 ext4 파티션을 사용하거나 "toram"이나 램 드라이브를 시도 할 것입니다.
LS

라이브 미디어를 iso이므로 읽기 전용으로 만 마운트 할 수 있다고 어떻게 수정 grub.cfg하거나 syslinux.txt주었습니까?
solsTiCe

위의 내용은 ISO를 사용하여 파일을 쓸 수있는 라이브 미디어 USB를 만들었습니다. ISO를 직접 부팅하면 (예 : 하드 디스크에서) 파일을 편집 할 수있는 완전히 별개의 그럽 (하드 디스크에있는 것)을 사용합니다 (이 경우 ISO의 부팅 메커니즘을 전혀 사용하지 않음).
ubfan1

7

다음 설정을 사용하면 매우 쉽습니다.

  1. 캐스퍼를 설치하지 않고 SLC USB 스틱 (하드웨어에서 지원하는 경우 USB 3.0 선호) 에 Ubuntu를 설치 하십시오 (정상적인 설치로 USB 스틱을 SSD로 취급).

    왜? SLC는 MLC 보다 2 배 비싸지 만 4 배 더 빠르며 8 * 더 오래갑니다! 그래서 그들은 실제로 막대기에 작은 SSD입니다!

  2. 시스템을 최적화하고 USB 스틱을 소형 SSD로 취급하십시오.

    당신의 /etc/sysctl.conf추가 :

    # Fabby: change the "swappiness" to 10 to prevent swapping as much as possible
    # to not wear out the USB stick as the Ubuntu default is optimized for a server.
    # 10 to balance with vfs_cache_pressure
    vm.swappiness = 10
    
    # Fabby: Lower vfs_cache_pressure to 75% 
    # (once cached, probably not immediately needed any more)
    #
    # This percentage value controls the tendency of the kernel to reclaim
    # the memory which is used for caching of directory and inode objects.
    #
    # At the default value of vfs_cache_pressure=100 the kernel will attempt to
    # reclaim dentries and inodes at a "fair" rate with respect to pagecache and
    # swapcache reclaim.  Decreasing vfs_cache_pressure causes the kernel to prefer
    # to retain dentry and inode caches.
    vm.vfs_cache_pressure = 75
    
    # Fabby: Good to improve sequential reads (stop stuttering in movie play)
    # Can also be implemented per disk using udev rules
    vm.max-readahead=2048
    vm.min-readahead=1024
    

    당신에 /etc/fstab담기 굵은 PARAMATERS 부팅 USB 라인. (아마도 sdc또는 sdd입니다. 아래는 예입니다. 가능하면 UID를 사용하십시오)

    /dev/sdc / ext4 defaults,noatime,discard,errors=remount-ro 0 1

  3. 2 명의 사용자 생성 : USB 스틱에 홈 디렉토리는 있지만 파일이 거의없는 일반 사용자와 HDD에 홈 디렉토리 있는 일반 사용자 .

  4. 이제 HDD를 삽입하고 필요한 HDD 정보를 추가하여 HDD fstab를 자동 마운트하고 다음 매개 변수를 추가하십시오.

    nobootwait,nofail

    HDD가없는 경우에도 부팅 허용 (이 경우 일반 사용자가 아닌 관리자 만 액세스 할 수 있음)

  5. 이제 관리자로 로그인하고 일반 사용자의 홈 디렉토리를 USB 스틱에서 HDD로 이동하십시오.

cp --preserve=all /home/NormalUser/* /media/ExternalHDD/NormalUser

모든 것이 정상이라면 :

rm --recursive --force /home/NormalUser/*
cd /home
ln --symbolic /media/ExternalHDD/NormalUser

끝난! :-)

기록을 위해 : 나는 이와 같은 16GB USB 2.0 MLC 스틱을 가지고있다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.