Linux kullanarak NTFS'den başka bir NTFS'ye dosyaların tam kopyası


14

Tüm dosyaları bir NTFS'den harici bir sürücüye kopyalamaya çalışıyorum ve tüm izinleri ve öznitelikleri korumak istiyorum. Harici sürücünün zaten bir NTFS'si var ve başka dosyalar içeriyor.

Aşağıdaki araçları kullanmayı düşündüm:

  • ntfsclonesektör düzeyinde çalıştığı ve tüm FS'yi klonlayacağı için çalışmaz, böylece eski verileri yok eder. Bir görüntü dosyası oluşturmak için kullanılırsa, içeriğe bir Windows makinesinden erişemiyorum.
  • rsync tüm meta verileri korumaz.

Bir alternatif robocopyçalışan bir Windows içinde kullanmak olacaktır , ancak dosyaları olmadan kopyalamayı tercih ederim. (Kaynak bölüm sistem olarak kullanılır C:\.)

Dosyaları nasıl kopyalayabilirim?


5
RSYNC'nin uygun parametrelerle korunmayacağını burada tam olarak hangi meta verileri tutmaya çalışıyorsunuz? Müzik dosyası yazılım türü meta verilerine veya gerçek FS izinlerine, yapısına, zamanına, sahibine vb. Mi başvuruyorsunuz? RSYNC ile zaten ne denediğinizden emin değilim, ancak -AXogtörneğin doğru parametreleri kullanmanın FS meta verilerini çoğunlukla tutması gerektiği anlaşılıyor . Lütfen nelerin denediğini ve neyin çalışmadığını ve NTFS bölümleri arasında saklanmadığını gördüğünüz "meta veriler" i açıklayın.
Pezevenk Suyu

Dosyaları kendileri tam olarak byte-for-byte için linux kopyalanabilir biliyorum, ama tüm tarihler oluşturulan, değiştirilmiş, erişilen gibi eksik mi? Veya NTFS kullanıcısı / sahibi ve izinleri? Windows NTFS'ye geri kopyalandıktan sonra dosyalardaki bu tarihleri ​​ve izinleri değiştirmenin bir yolu yok mu?
Xen2050

Yanıtlar:


8

Linux'tan geçerek NTFS dosyalarını tam olarak kopyalamanın bir yolu yoktur. Linux'taki Windows uyumluluk katmanı Wine bile , Linux ve Windows arasında izinleri ileri geri dönüştürerek çalışır ve bu nedenle (oldukça küçük) en küçük paydalarıyla sınırlıdır.

Görebildiğim tek çözüm, Linux üzerinde bir sanal makine (veya fiziksel) içinde Windows çalıştırmaktır.

Gönderiminizde bu olasılıktan bahsettiğinize ve bundan kaçınmayı tercih ettiğine inanıyorum, ancak başka bir olasılık görmüyorum. Yalnızca Windows NTFS dosyalarını tam olarak kopyalayabilir; Linux yalnızca NTFS bölümlerini kopyalayabilir.

Bu makale yardımcı olabilir: Microsoft tarafından karşıdan yüklenebilecek ücretsiz sanal makineleri kullanarak Microsoft Windows'u Linux'a ücretsiz olarak yükleme ve çalıştırma .


Bundan emin değilim, ama ntfs- 3g'nin man sayfasına göre seçenek streams_interface=xattrvarsayılan olarak ayarlanmıştır. Doğru anlıyorsam, bu NTFS dosya özniteliklerinin (Windows izinleri dahil) xattrlinux özniteliklerine eşlendiği anlamına gelir . Yana cp -ave rsync -Xbu özelliklerini kopyalamak kalmaz, aynı tam bir kopyası olmamalı?
JojOatXGME

@JojOatXGME: Windows ve Linux'un izin modelleri tamamen farklıdır. Sadece en temel niteliklerin tam bir karşılığı vardır.
harrymc

Biliyorum. Linux'un bu öznitelikleri anladığını iddia etmiyorum, ancak xattr öznitelikleri, işletim sistemi tarafından anlaşılması gerekmeyen anahtar / değer parisidir . ntfs-3g , Windows izinlerini xattr özniteliği olarak sunuyor gibi görünüyor system.ntfs_acl. Aynı şey NTFS'deki diğer veri verileri için de geçerli gibi görünüyor. Xattr öznitelikleri rsync -Xveya kullanılırken kopyalandığından cp -a, meta verileri de kopyalayabilir. Somut sınırlamalarına xattrve uygulanmasına bağlıdır ntfs-3g, ancak bana mümkün görünüyor.
JojOatXGME

peki bunu nasıl doğru bir şekilde test edebiliriz? böyle bir ifadeyle ihtiyacımız olan şey bu. Sadece test edilebilirse yararlıdır ....
UV

1

İlk şey, dosyaları kopyalamak istiyorsanız, karar vermeniz gerekiyor ...

ya da NTFS bölümünüzün "eski veriler", "diğer dosyalar" ve ayrıca yukarıda bahsettiğiniz tüm meta veriler "de dahil olmak üzere, sektörlere göre eksiksiz bir kopyasını oluşturmak istersiniz.

İkincisi için dd kullanın:

dd if=/dev/sda2 of=/mnt/usbdisk/my-ntfs-partition-D.img bs=1M

İyi eğlenceler.


2
Fikrimi uydurdum ve zaten soruda. Dosyaları ilişkili tüm meta verilerle kopyalamak istiyorum . Bu mümkün olmalı, çünkü kaynak FS ve hedef FS NTFS olduğundan aynı özelliklere sahip olmalıdır. ddFS bilgilerini dikkate almadığı için kullanmak kötü bir seçim olacaktır. NTFS'niz varsa, ntfsclonegörüntü oluşturmak için her zaman kullanmalısınız .
Scolytus

Bu durumda robocopyor ntfscopy ( tzworks.net/prototype_page.php?proto_id=9 ) kullanın, ancak bunların hiçbiri linux'da mevcut değildir.
Paxsali

Sorumda da bahsettim robocopy. Bu yüzden gücünüzü takdir ediyorum, ama bu sorumun cevabı değil.
Scolytus

1

Linux NTFS dosyalarının içeriğini iyi bir şekilde kopyalayabilir , sadece değiştirilmiş / oluşturulmuş / erişilen tarihler ve öznitelikleri değil (korunmasını istediğiniz şey budur).

Öyleyse neden sadece geçerli tarihleri ​​ve öznitelikleri not almıyorsunuz ( dirbunları görüntüleyebilmelisiniz), sonra dosyaları linux'a kopyalamıyorsunuz ve Windows'u çalıştırdıktan sonra tarihleri ​​ve öznitelikleri tekrar orijinallerine geri döndürüyorsunuz.

Biri gibi, dosyaları değiştirebilirsiniz Windows'da bir araç kullanın bu olanlar :

Görünüşe göre Windows'un kendi Dosya Gezgini de tüm dosya tarihlerini düzgün bir şekilde korumaz . Ancak zip & cygwin'in tar komutları dosya tarihlerini kaydetmelidir, bu nedenle önce bir arşiv oluşturmak için Windows'taki dosyalardan birini kullanmak da çalışmalı, daha sonra arşivi eski bir şekilde kopyalamalıdır.


Öznitelikler süper önemliyse ve Windows'da bile kopyalanması zorsa, muhtemelen bir metin dosyasında veya veritabanında yedeklenmeli veya dosya adının bir parçası haline getirilmelidir ...

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.