Linux normal bir Time Machine seyrek paket görüntü dizini bağlayabilir mi?


30

Linux'un bir Time Capsule'da yerel olarak depolanan dosyaları bir ağ paylaşımı üzerinden bağlayıp okuyabildiğini görmek istiyorum. Gibi bu soruya ben en az salt okunur fonksiyonuna replika o şey bakıyorum hdiutil takmak ve daha sonra seyrek paket disk görüntülerini monte etmek.

SMB bağlama ikisini de kullanarak Zaman Kapsülü hisseleri beri kolaydır AFP ve SMB , ama ben o kadar emin seyrek diskin demeti sulandırılmış HFS + dizin olarak monte edilebilir ediyorum.

Çalışan bir mount komutu veya işaretçisi için bu DMG formatını ayrıştırılan uygun pakete bonus puan.

Net olmadığı durumda - bu, bant dosyalarının Terminal'deki bir Mac'ten monte edildiğinde bana nasıl göründüğünü ve Linux'un çok sayıda ikili bant dosyalarında kodlanan asıl dosya sistemini monte etme yeteneği olmadan görmesini beklediğim şeydir.

host:iMac.sparsebundle mike$ ls -la
total 24
drwxrwxrwx@     7 mike  staff      264 Jul  5 10:01 .
drwx------      6 mike  staff      264 Mar 26 13:11 ..
-rwxrwxrwx      1 mike  staff      499 Feb 24 15:33 Info.bckup
-rwxrwxrwx      1 mike  staff      499 Feb 24 15:33 Info.plist
drwxrwxrwx  31101 mike  staff  1057390 Jun 17 20:19 bands
-rwxrwxrwx      1 mike  staff      532 Jun 24 22:06 com.apple.TimeMachine.MachineID.plist
-rwxrwxrwx      1 mike  staff        0 Feb 24 15:33 token
host:iMac.sparsebundle mike$ ls -la bands | head -10
total 1582092552
-rwxrwxrwx  1 mike  staff  8388608 Jul  5 08:33 0
-rwxrwxrwx  1 mike  staff  8388608 May 31 13:02 1
-rwxrwxrwx  1 mike  staff  8388608 Jun 24 22:16 10
-rwxrwxrwx  1 mike  staff  8388608 Mar 19 17:15 1000
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 10000
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 10001
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 10002
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 10003
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 10004
host:iMac.sparsebundle mike$ ls -la bands | tail -10
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:51 fff6
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:51 fff7
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:51 fff8
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:51 fff9
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:51 fffa
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 fffb
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 fffc
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 fffd
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 fffe
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 ffff
host:~ mike$ ls -la bands|wc -l
   96636

Neden sparsebundle "mount" gerekir? Linux cd, Time Machine yedeklemelerinin depolandığı birim Linux'a monte edildikten hemen sonra bir dizin olarak görmelidir .
Ian C.

Teşekkürler Ian C - Ne aradığımı açıklığa kavuşturmak için soruyu düzenledim - ham veriler hepsi orada, sadece belirli bir noktadan belirli bir noktadan okumak için en kullanışlı olan daha okunabilir bir formatta saklanmıyor.
bmike

Yanıtlar:


32

Bu ikisinin bir kombinasyonunu kullanabilirsiniz:

Mac OS seyrek paket görüntüleri okumak için FUSE dosya sistemi

Apple'ın Time Machine sigortası salt okunur dosya sistemi

Birincisi .sparsebundle formatına bakar, daha sonra normal şekilde monte edilebilen bir dmg dosyası olarak sunar. İkincisi, Time Machine tarafından kullanılan dizin bağlantılarını önemser.


Bu kabul edilen cevap olmalı. tmfsbenim için mükemmel bir şekilde Debian 7.0'da yaptı.
Gordon Bailey

Beni bu işe attığım için @ GordonBailey'e teşekkür ediyorum - başka bir cevabın verildiği bildirimini kaçırdım.
saat

Dmg'yi kutudan çıkaramadım, bu yüzden FUSE aracılığıyla monte edilen sevgilim-dmg'yi de kullanmak zorunda kaldım.
Praxeolitic

4

Bu @ TorArneVestbø tarafından verilen cevabın bir uzantısıdır.

Https://github.com/torarnv/sparsebundlefs ve https://github.com/abique/tmfs dosyasını yükledikten sonra , aşağıdaki betiği Bash ile çalıştırmanız gerekir. Kaynak ve hedef olmak üzere başlangıçtaki iki değişkeni güncellediğinizden emin olun.

SB="/path/to/your/Backup.sparsebundle"
TM_MNT="/path/to/where/to/mount"

# Make directories
mkdir -p "$TM_MNT"
SB_MNT=`mktemp --tmpdir -d sparsebundle_mnt.XXX`
SB_DMG="$SB_MNT/sparsebundle.dmg"
HFS_MNT=`mktemp --tmpdir -d hfsx_mnt.XXX`

# Mount the sparse bundle
sudo `which sparsebundlefs` "$SB" "$SB_MNT"

# Mount the HFS+ partition
OFF=`sudo parted "$SB_DMG" unit B print | tr 'B' ' ' | awk '/hfsx/ {print $2}'`
SZ=`sudo parted "$SB_DMG" unit B print | tr 'B' ' ' | awk '/hfsx/ {print $4}'`
LO=`sudo losetup -f "$SB_DMG" --offset $OFF --sizelimit $SZ --show`
sudo mount -t hfsplus -r "$LO" "$HFS_MNT"

# Mount the Time Machine filesystem
sudo `which tmfs` "$HFS_MNT" "$TM_MNT" -ouid=$(id -u $USER),gid=$(id -g $USER),allow_other

Son montaj sizin tarafınızdan erişilebilir (sizin için erişilebilir olduğu sürece $TM_MNT). FUSE başka kullanıcıya izin verecek şekilde ayarlanmamışsa, son satır başarısız olabilir, nasıl düzelteceğinizi açıklar.

Çıkarmak için aşağıdakileri yapmanız gerekir:

sudo umount "$TM_MNT"
sudo rmdir "$TM_MNT"
sudo umount "$HFS_MNT"
sudo rmdir "$HFS_MNT"
sudo losetup -d "$LO"
sudo umount "$SB_MNT"
sudo rmdir "$SB_MNT"

Bu bir Fedora 28 sisteminde test edildi ve iyi çalışıyor.


3

Apple'ın Time Machine sigortası salt okunur dosya sistemi

https://github.com/abique/tmfs


4
Bu cevabın amacı nedir? Bir şey yapar mı? Soruyu cevapladığını bile tahmin edebiliyor muyuz? Bunun ne anlama geldiğini ve sorunu nasıl çözdüğünü çözmen gerekecek
rastgele

3

Alexandre Bicque tarafından yazılan yukarıdaki yazı, bir Mac sunucusundaki dosyaların okunmasını sağlayan Mac formatlı bir HFS + disk veya disk bölümünde depolanan bir Time Machine sparebundle'ı açacak bir Linux (? Unix) programı sunar.

Ayarlanması soluk kalpli olanlar için değil. C ++ dilinde yazılmıştır ve cmakebelirli minimum sürümlerle (Ubuntu Sunucum 10.04 için varsayılan son sürümler olmayabilir) , 3 C ++ kütüphanesi ( FUSE ve Boost) gerektirir. Ayrıca bir g ++ derleyicisi ve yukarıdaki kütüphaneleri bulup kurmayı da gerektirir.

Ubuntu server 10.04 kullanıyorum ve pek programcı değilim. Ancak, biraz çalışmadan ve zamandan sonra gerekli tüm kütüphaneleri kurmayı, tmfs paketini derlemeyi ve bağlamayı ve kullanmayı başardım. TimeMachine Time Capsule takılmasına izin vererek çalışır. Ancak, sparebundle görüntüsünün yazıldığı diskin bir HFS + disk veya bölüm olmasını gerektirir. Görüntü bir Linux sunucusundaki NTFS veya ext2 / ext3 / ext4 dosya sistemine yazıldığında işe yaramaz.

Apple'ın OS X 10.7 (Lion) sürümünden itibaren, Time Machine (sparsebundle) görüntüleri, Windows (smb / Samba) Linux paylaşımına monte edildiğinde artık çalışmaz ve Linux'u Linux olarak kullanmak için Linux / Unix Netatalk ( afpdplus avahi-daemon) hizmetlerini çalıştırmak gerekir bir Time Machine sunucusu.

Başka bir çözüm aramayı çok yaptım. Bir Linux / Unix C ++ programcısının, ext4 veya ntfs dosya sistemlerinin kullanımına izin vermek için Alexandre Bicque'nin çalışmalarını genişlettiğinden daha iyisini yapabileceğinden şüpheleniyorum. Nasıl yapılacağını bulmaya çalışıyorum ama gidecek çok yolum var.

Sanırım sigortayı (kullanıcı alanı dosya sistemi) ve belki de boost::filesystemsistem geliştirme yardımcılarını daha ileriye taşımak için daha iyi anlamamı gerektirecek .


AFAICS, şu anda HFS + için bir gereklilik yok, her iki tmfs için de mevcut değil. Bu açıklama HFS'den bahseder, ancak açıklanan adımlar yine de çalışacaktır.
Blaisorblade

2

Ne yazık ki Linux'tan bir sparebundle'da bir şeyler bulmanın yolu kolay değil. Yapılabilir, ancak sparsebundle'daki asıl dosyayı bulmak için Apple'ın hardlinklere gömdüğü bazı inode bilgilerinin yorumlanmasını gerektirir. Bu MacWorld ipucu , bir sparebundle içindeki bir hardlink'in asıl dosya olarak neye işaret ettiğini ve böylece Linux sisteminden erişebilmenizi sağladığını nasıl anladığınızı açıklar. Tek bir makineye yerel disk olarak takılan bir Time Machine diskiyle ilgilenir.

Senin durumunda <mount point>/Backups.backupdbbüyük olasılıkla <machinename>.backupdb`.

<mount point>/.HFS+ Private Directory DataBirden çok makine tarafından Time Machine yedeklemeleri için kullanılan paylaşılan bir disk için aynı noktada var olup olmadığından emin değilim . Bunu ls -labulmak için diski ve sparebroları incelemek zorunda kalacaksınız .

Ancak, aksi takdirde bu MacWorld talimatları, bir Time Machine paketindeki dosyaları Linux'tan almanıza yardımcı olacaktır.

Bağlanma noktasına ilişkin bir güncelleme.

Güncellenen sorunuza dayanarak bazı deneyler yaptım. Bağlantı noktasının *.sparsebundlesürücü değil dizin olması gerektiği anlaşılıyor. Sürücüyü OS X'e monte edersem ve gittiğinizde dizini sizin gibi /Volumes/Remote Backups/mymachine.sparsebundlegörüyorum bandsve işe yaramaz.

Ancak mymachine.sparsebundlegidebildiğim şekilde /Volumes/Time Machine Backupsbağlarsam (bu, çift tıklattığımda Finder'da otomatik olarak bağlanan şeydir mymachine.sparsebundle) beklenen Backups.backupdbdizini ve bunun altında tarih-saat dizinlerini beklendiği gibi görürüm .


Cevabınız için teşekkürler, ama sizinle aynı dosya yapısını göremiyorum. Bant dosyalarının içinde kodlandığından Backups.backupdb'yi alamıyorum. Bu dizinin ham formda sayılması çok uzun sürdüğü ls | tee /tmp/bandsiçin çıktıyı yakalamak için bir koştum . Ben birçoğu 8388608 olan 96636 ikili dosyam var. Mac'in disk yardımcı programı tarafından bir dosya sistemine dönüştürüldükten ve ardından yeniden paylaşıldıktan sonra yedekleme yapısını aşmakta hiçbir sorunum yok. Dosya sistemini yeniden paylaşmak için OS X sistemi olmadan linux'taki bantların nasıl işlendiğini çözemiyorum.
bmike

@bmike: *.sparsebundledosyayı uzak sürücü yerine Linux'ta bir hfsplus dosya sistemi olarak monte etmeyi deneyin . Mac'inizdeki .sparsebundle'i açarsanız ve /Volumes/Time Machine BackupsOS X'te bir birim çıkarırsanız, ne olduğuna benzer. Cevap daha ayrıntılı olarak güncellendi.
Ian C.

Linux'ta, Mac OS X'in aksine doğrudan sparebundle dosyalarını
bağlayamazsınız
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.