Parçalara ayrılmış bir disk img dosyasını almanın ve tek bir döngü aygıtı olarak monte etmenin bir yolu var mı?
Parçalara ayrılmış bir disk img dosyasını almanın ve tek bir döngü aygıtı olarak monte etmenin bir yolu var mı?
Yanıtlar:
Yerinde yapabileceğinizi sanmıyorum ama yeterli alanınız varsa bu işe yarayacaktır:
# Create the files that will hold your data
dd if=/dev/zero of=part-00 bs=1M count=4k
dd if=/dev/zero of=part-01 bs=1M count=4k
# Create the loop devices
losetup /dev/loop0 part-00
losetup /dev/loop1 part-01
# Create a RAID array
mdadm --create /dev/md0 --level=linear --raid-devices=2 /dev/loop0 /dev/loop1
# Copy the original filesystem
dd if=original-file-00 of=/dev/md0 bs=512
# Look at the records written value
dd if=original-file-01 of=/dev/md0 bs=512 seek=<sum of records written values so far>
# Mount the new filesystem
mount /dev/md0 /mnt
RAID disklerin, disk sayısının, RAID düzeyinin vb. Depolandığı belirli bir başlığı olduğundan orijinal dosyalardan bir RAID dizisi oluşturamazsınız. Bunu yaparsanız orijinal dosyalarınızın bir kısmının üzerine yazılacaktır.
mdadm --build
Meta veri içermeyen bir dizi oluşturmak için the komutunu kullanabilirsiniz, ancak önce bir yedek oluşturmanız gerekir. Veya salt okunur bağlama yeterliyse:
losetup -r /dev/loop0 original-00
losetup -r /dev/loop1 original-11
mdadm --build /dev/md0 --level=linear --raid-devices=2 /dev/loop0 /dev/loop1
mount /dev/md0 /mnt
Bunu neden yapmak istiyorsun? Dosya sisteminiz 4GB'tan büyük dosyaları işleyemiyorsa, aklı başında bir dosyaya geçmeniz gerekir.
truncate
yerine dd
(sadece içeren delik olarak FS fiili yazma ama sadece ayırır Inode'u ve işareti dosyasını gerçekleştirmez) çok daha hızlı olduğu gibi.
Bölünmüş bir disk görüntüsünü (veya bölüm görüntüsünü) monte etmek affuse
için şu anda burada tutulan afftools'tan kullanmalısınız : https://github.com/sshock/AFFLIBv3
Yani, bir dosyanız varsa, birkaç alt dosyaya bölün test_img.000, test_img.001, test_img.002, test_img.003, test_img.004, test_img.005, test_img.006, test_img.007, test_img.008, test_img.009
o zaman onlara neredeyse affuse
# affuse test_img.000 /mnt/combine
# ls -lh /mnt/combine
total 0
-r--r--r-- 1 root root 2.0G 1969-12-31 16:00 test_img.000.raw
(bu, 000 dosyasıyla başlayan tüm dosyaları birleştirir, ardından 001, 002,…)
Ve sonra görüntüyü monte edin
mount -o ro,loop,offset=329043456 /mnt/combine/test_img.000.raw /mnt/test
Kullanım açıklanan burada ve bazı örnekler burada . Derleme ve kurulumdan sonra veya burada bir manpage de mevcuttur .
Not: Benim için affuse
sadece bölünmüş dosyaların boyutu 512 baytın katlarıysa çalıştı.
Kendi blok depolama aygıtı uzantınızı yazabilir (sigorta benzeri uzantıyı düşünün) ve adresin ne olduğuna bağlı olarak arama yapabilirsiniz.
Burada https://github.com/libfuse/python-fuse/blob/master/example/hello.py sigortasının nasıl kullanılacağına dair bir örnek bulabilirsiniz.
Bir çözüm için şimdiye kadar bildiğim en yakın şey bir VMware VM oluşturmak. Rescatux veya Knoppix gibi bir Linux canlı CD'si başlatıyorsunuz, ana bilgisayarınızda bir SMB paylaşılan klasörü oluşturuyorsunuz, bu SMB paylaşımını VM'nize bağlıyorsunuz vedd
görüntüyü sanal HD'ye yerleştiriyorsunuz. VMware varsayılan olarak disk görüntülerini bölünmüş dosyalar olarak kaydeder, bu nedenle doğrudan bir disk görüntüsünü birden çok dosyaya bölünmüş olarak okumak en yakın şeydir.
Daha sonra, ana bilgisayarınızdan dosyalara erişmek istiyorsanız, görüntüye ikinci bir sanal HD eklemeyi ve dosyaları buraya kopyalamayı deneyebilirsiniz. Daha sonra VM üzerinde bir SMB paylaşımlı klasörü kurar ve ana bilgisayarınızdan bu klasöre bağlanırsınız. Bu şekilde, örneğin, bir iPod Classic (yalnızca fat32'i yırtan) kullanıyorsanız veya akıllı telefonunuzun SD kartını (genellikle sırayla özel bir ROM takmanız gerekir) 4 GB FAT32 dosya sınırını ihlal edebilirsiniz. Harici depolamada Ext3 veya NTFS kullanmak için, Samsung veya Motorola gibi popüler bir üreticiden bir telefona ihtiyacınız var, bu yüzden Çinli bir akıllı telefonunuz varsa güdük).
Kuşkusuz verimli bir çözüm değil, ancak iPod Classic'imde veya stok ROM'lu Samsung akıllı telefonlarda fat32 dışında herhangi bir FS kullanamadığım için sınırlı kaldığım için, Geçmişte ve buna hala etkili bir çözüm bulamıyorum. Hatta kendim yazmak zorunda kalabilirim.
Not: Windows kullanıyorsanız, bunu yapmanın tek yolu olabileceğini belirtmeyi unuttum.
BSD altında montaj için birleştirme seçeneğini kullanabilirsiniz. Linux altında unionFS'yi deneyebilirsiniz.