Disk / hdd'de kalıcı değişikliklerle usb sürücüde canlı bir sistem nasıl oluşturulur


10

Kalıcı değişikliklerle bir USB sürücüsüne Ubuntu'yu canlı olarak yüklemeye çalışıyordum. Ancak çeşitli nedenlerle (Performans, Boşluk) USB yerine HDD'ye değişiklikler yazmak istedim.

Değişikliklerin, sistem (casper-rw) tarafından monte edilen bir ext3 dosya sistemine sahip bir dosya içinde ele alındığını öğrendim. Ancak başlangıçta flash sürücüde otomatik olarak algılanıyor gibi görünüyor.

HDD'de yeni bir casper-rw dosyası oluşturabilir ve USB sürücüsündeki Ubuntu canlı sistemini HDD'ye nasıl yeniden yönlendirebilirim?

2015-07-14'ü düzenleyin:

Şimdiye kadar cevaplarınız için teşekkür ederim. Onlar çok ilginç ve "canlı sistem kalıcı tasarruf özelliği" mekaniği anlamak için çok yardımcı olur ve sorunu çözmek için iyi yaklaşımlar gösterir. Ne yazık ki ana sisteme erişim ve / veya açıkça belirtmedi yeni donanım erişimi ile ilgili soru sorarken aklımdaki bazı sınırlamaları aşmaya çalışıyordu (bunun için üzgünüm).

Bölümleme bir seçenek ise, burada belirtilen cevap çok iyi olduğunu düşünüyorum , çünkü sadece yeni bir bölüm oluşturmanızı gerektirir, casper-rw etiketleyin ve işiniz bitti (iş harika, test ettim).

Yeni donanım satın almak bir seçenekse, ortalama bir USB2.0 flash sürücüden çok daha iyi bir performansa sahip olan usb3.0 Flash Sürücü (MLC veya SLC), taşınabilir HDD'ler, eSATA ve diğer seçenekler akla geliyor.

Bu yüzden sadece sınırlı erişim (veya kopya / flash sürücüdeki bir bağlantı) ile bir disk üzerinde bir bölüm yerine bir casper-rw dosyası oluşturmak için bir yol olup olmadığını merak ediyordum.

Bu şekilde casper-rw dosyasını tekrar flash sürücüye kopyalayıp oradan tekrar kullanmak veya başka bir bilgisayara taşımak, büyük esneklik, HDD'de minimum değişiklikler ve yapılan değişikliklerin kolayca kaldırılması kolay olurdu. sistemi.


Bunun bir seçenek olup olmadığından emin değilsiniz, ancak yalnızca verileri kaydetmeniz gerekiyorsa, canlı dosya sistemi ağacınıza bir yere bir HDD bölümü de monte edebilirsiniz ... Bu şekilde, diskte yalnızca belirli klasörleriniz bulunur.
Byte Komutanı

@ByteCommander yorumunuz için teşekkür ederiz. Ne yazık ki HDD'yi bölümlemek benim için bir seçenek değil ve her şeyi olabildiğince küçük olmasını istiyorum, böylece verileri hızlı ve basit bir şekilde silebilirim, böylece HDD'deki tek bir dosya ideal olur.
LS

Bir dosya sisteminin görüntüsünü içeren bir dosya da (örneğin .iso veya .img, muhtemelen daha fazla) monte edilebilir. Ne yazık ki bunu hiç yapmadım ve size bunu nasıl yapacağınızı söyleyemem ...
Byte Commander

Bunun işe yaramadığını nereden biliyorsun? Dosyanız casper-rw mı? Bölümünüzün kökünde mi? Bunu yaptım (bunun yerine sabit disk üzerinde casper-rw etiketli bir disk bölümü ile sabitleme kullanarak) ve fazladan gerekli bir adımı hatırlamıyorum.
SolsTiCe

Son düzenlemeniz, sorunuzu geniş kullanım için çok özel kılıyor (ki bu benim cevabım ...) Bu imkansız değil, ancak takma işlemi için komut dosyalarını ve udev kurallarını oluşturmak anlamına geliyor - [HDD ile senkronize et] - [bağla] ve [HDD ile senkronize et], ancak bu bir ton çalışmadır ve böyle bir Soru-Cevap sitesi için gerçekten uygun değildir.
Fabby

Yanıtlar:


4

Canlı medya için yazılabilir dosya sistemini (casper-rw dosyasında) kolayca sabit diske koyabilirsiniz. Sınırlama, casper-rw dosyasının bir FAT bölümüne gitmesi gerektiğidir. Daha yeni makinelerin (UEFI) bir FAT EFI bölümü vardır, ancak genellikle 1G-4G casper-rw dosyasını tutamayacak kadar küçüktür. Yeterince büyük başka bir FAT bölümünde, her biri muhtemelen farklı canlı medya için casper-rw dosyası tutan dizinler oluşturabilirsiniz. Sda11'in 10G olduğunu ve / mnt / sda11 üzerine monte edilmiş ve üzerinde / A, / B, / C, / D ve / E dizinlerinin bulunduğu 10G FAT dosya sistemine sahip olduğunu varsayalım. Kalıcı medyamız için / A kullanacağımızı ve oraya bir casper-rw koyacağımızı varsayın.

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

Kalıcı olarak oluşturulan canlı medyanızı alın ve /boot/grub/grub.cfg dosyasını ve /syslinux/txt.cfg dosyasını düzenleyerek "sürekli" kelimesinden sonra ekleyin

"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
...

Bu kadar. USB ortamındaki casper-rw dosyasını yeniden adlandırmanız / kaldırmanız bile gerekmez.


USB ortamında yer varsa, sabit diskin casper-rw'sini tekrar USB'ye kopyalayabilir ve değişikliklerinizi yanınıza alabilirsiniz.


Kalıcı yol herhangi bir açık disk referansına izin vermediğinden, tüm FAT bölümlerinde benzersiz olmalıdır. 1 veya 2 FAT bölümü ile test edilmiştir (biri EFI bölümüdür). FAT yerine ext2 veya ntfs dosya sisteminde çalışmaz. Ayrıca "kalıcı" ile aynı satıra "toram" kelimesini eklerseniz, yavaş USB'deki sıkıştırılmış dosya sisteminiz ram'ye kopyalanır ve çok daha iyi performans verir, ancak FAT bölümü ile bir kapatma sorunu var gibi görünüyor temiz bir şekilde sökülmemesi (herhangi bir soruna yol açmıyor gibi görünüyor ...


Teşekkürler. Bu, işleri daha net hale getirir. Önyükleme durumunda ntfs tanınamıyor (değil mi?) Böylece bir ntfs bölümünde bir casper-rw olması imkansız hale varsayalım. Bu yüzden ya casper-rw etiketli ext4 bölümü ile gidiyorum ya da bazı "toram" ya da ramdrive şeyler denemek düşünüyorum.
LS

Sadece nasıl bir iso olduğu gibi sadece canlı medya okuyabilir monte grub.cfgveya syslinux.txtverilen nasıl ?
SolsTiCe

Yukarıda ISO, dosyaların yazılabilir olduğu bir canlı ortam USB'si oluşturmak için kullanıldı. ISO'yu doğrudan önyüklemek (örneğin bir sabit diskten), dosyaları düzenlenebilir olan tamamen ayrı bir grub (sabit diskteki) kullanır - bu durumda ISO'dan önyükleme mekanizmalarını hiç kullanmaz.
ubfan1

7

Aşağıdaki kurulumu kullanırsanız bu son derece kolaydır:

  1. Ubuntu'yu herhangi bir casper malzeme olmadan (sadece normal bir kurulum, USB çubuğunu SSD olarak ele alıyor) bir SLC USB çubuğuna (donanımınız destekliyorsa USB 3.0 tercih edilir) yükleyin.

    Neden? SLC'ler MLC'lerin iki katıdır, ancak 4 kat daha hızlıdır ve 8 kat daha uzun ömürlüdürler! Yani gerçekten bir çubuk üzerinde küçük SSD'ler!

  2. Sistemi optimize edin ve USB çubuğa küçük bir SSD gibi davranın, böylece:

    Senin içinde /etc/sysctl.confeklenti:

    # 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
    

    İçinde cesur paramaterleri önyükleme USB hattınıza /etc/fstabekleyin . (Muhtemelen veya olacaktır . Aşağıdaki örnek, mümkünse UID kullanın)sdcsdd

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

  3. 2 kullanıcı oluşturun: USB çubuğunda ana dizini olan ancak çok az dosyaya sahip olan ve ana dizini HDD'de olacak normal bir kullanıcı olan bir yönetici kullanıcı .

  4. Sadece şimdi HDD'yi takın ve HDD'yi fstabotomatik olarak monte etmek için aşağıdaki HDD bilgilerini ekleyin ve aşağıdaki parametreleri ekleyin:

    nobootwait,nofail

    HDD olmasa bile önyüklemeye izin vermek için (Bu durumda, normal kullanıcı değil, yalnızca yönetici kullanıcı erişime sahip olacaktır)

  5. Şimdi yönetici kullanıcı olarak oturum açın ve normal kullanıcının giriş dizinini USB çubuğundan HDD'ye taşıyın:

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

Her şey yolundaysa:

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

Bitti! :-)

Kayıt için: Böyle bir 16GB USB 2.0 MLC çubuğum var (kullanım durumum için daha sonra yeterli ve çok pahalı değil ve şimdi yaklaşık 5 yaşında ve hala çalışıyor!)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.