Czy istnieje sposób, aby wziąć plik Img dysku, który jest podzielony na części i zamontować go jako urządzenie z jedną pętlą?
linux
block-device
loop-device
MageProspero
źródło
źródło
Odpowiedzi:
Nie sądzę, że możesz to zrobić na miejscu, ale jeśli masz wystarczająco dużo miejsca, powinno to działać:
Nie można po prostu utworzyć macierzy RAID z oryginalnych plików, ponieważ dyski RAID mają określony nagłówek, w którym przechowywana jest liczba dysków, poziom RAID itp. Jeśli to zrobisz, część oryginalnych plików zostanie zastąpiona.
Możesz użyć
mdadm --build
do utworzenia tablicy bez metadanych, ale wtedy naprawdę powinieneś najpierw wykonać kopię zapasową. Lub jeśli wystarczy montować tylko do odczytu:Dlaczego chcesz to zrobić? Jeśli twój system plików nie obsługuje plików> 4 GB, powinieneś po prostu przełączyć się na rozsądny.
źródło
truncate
zamiast,dd
ponieważ jest znacznie szybszy (nie wykonuje rzeczywistego zapisu do FS, a jedynie przydziela i-węzły i zaznacza plik jako zawierający tylko dziurę).Aby zamontować obraz podzielonego dysku (lub obraz partycji), powinieneś użyć
affuse
z afftools, które są obecnie utrzymywane tutaj: https://github.com/sshock/AFFLIBv3Jeśli masz plik, podziel go na kilka podtekstów
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
możesz dołączyć do nich wirtualnie
affuse
(łączy to wszystkie pliki, zaczynając od pliku 000, a następnie 001, 002,…)
A następnie zamontuj obraz
Użycie opisano tutaj i kilka przykładów tutaj . Strona podręcznika dostępna jest również po skompilowaniu i zainstalowaniu lub tutaj .
PS: Dla mnie
affuse
działało tylko wtedy, gdy podzielone pliki miały rozmiar wielokrotności 512 bajtów.źródło
Możesz napisać własne rozszerzenie blokowego urządzenia pamięci masowej (pomyśl o rozszerzeniu podobnym do bezpiecznika) i wykonywać wyszukiwania w zależności od adresu.
Tutaj możesz znaleźć przykład użycia bezpiecznika https://github.com/libfuse/python-fuse/blob/master/example/hello.py
źródło
Najbliżej znane mi rozwiązanie to stworzenie VMware VM. Zaczynasz na żywo CD z Linuksem, jak Rescatux lub Knoppix, tworzysz folder współdzielony SMB na komputerze-hoście, montujesz ten udział SMB na maszynie wirtualnej, a następnie
dd
obraz na wirtualnym HD. VMware domyślnie zapisuje obrazy dysku jako podzielone pliki, więc jest to najbliższa rzecz do bezpośredniego odczytu obrazu dysku podzielonego na wiele plików.Później, jeśli chcesz uzyskać dostęp do plików z komputera hosta, możesz spróbować dodać drugi wirtualny HD do obrazu i skopiować tam pliki. Następnie konfigurujesz folder współdzielony SMB na maszynie wirtualnej i łączysz się z nim z hosta. W ten sposób możesz na przykład przekroczyć limit 4 GB pliku FAT32 w przypadku korzystania z iPoda Classic (który tylko groks fat32) lub karty SD smartfona (zwykle musisz zainstalować niestandardową pamięć ROM, aby aby używać Ext3 lub NTFS na zewnętrznej pamięci, do tego potrzebny jest telefon popularnego producenta, takiego jak Samsung czy Motorola, więc jeśli masz chiński smartfon, jesteś zaskoczony.
Nie jest to wprawdzie wydajne rozwiązanie, ale ponieważ ograniczyło mnie to, że nie jestem w stanie korzystać z FS innego niż fat32 na moim iPodzie Classic lub smartfonach Samsung ze standardową pamięcią ROM, przeszukałem prawie cały internet w w przeszłości i nadal nie jestem w stanie znaleźć skutecznego rozwiązania tego problemu. Może nawet będę musiał to napisać.
PS: Zapomniałem wspomnieć, że jeśli korzystasz z systemu Windows, może to być jedyny sposób, aby to zrobić.
źródło
Pod BSD możesz użyć opcji union do zamontowania. Pod Linuksem możesz spróbować unionFS.
źródło