USB flash sürücüde UDF kullanma


75

4G'den büyük bir dosyayı 8G USB flash sürücüme kopyalayamadığımda ext3 olarak biçimlendirdim. Bu benim için şu ana kadar iyi çalışıyor olsa da, dosyaları Linux kullanamayan birisine kopyalamak için kullanmak istersem sorunlara neden olacak.

Bunun yerine UDF olarak biçimlendirmeyi düşünüyorum, bunun için en popüler üç işletim sisteminde (Windows, MacOS ve Linux) herhangi bir ekstra sürücü yüklemek zorunda kalmadan okunmasına (ve muhtemelen yazılmasına) izin vereceğini umuyorum . Bununla birlikte, web’de zaten bulduklarımdan, dosya sisteminin oluşturulmasında hangi parametrelerin kullanıldığına ilişkin bazı küçük kazanımlar var gibi görünüyor, bu da uyumluluğu azaltabilir (ancak bulduğum sayfaların çoğu USB flaş ile değil optik medya ile ilgili. sürücüler).

Bilmek isterim:

  • Dosya sistemini oluşturmak için hangi yardımcı programı kullanmalıyım? (Şimdiye kadar bulduk mkudffsve genisoimageve mkudffsen iyi seçenek gibi görünüyor.)
  • Maksimum uyumluluk için seçilen yardımcı program ile hangi parametreleri kullanmalıyım?
  • Bu üç işletim sisteminin en yaygın sürümleriyle ne kadar uyumlu UDF aslında?
  • UDF kullanmak aslında en iyi fikir midir? FAT32 4G dosya boyutu sınırı gibi herhangi bir problemli kısıtlama olmaksızın ve ona dokunarak her bir bilgisayara özel sürücüler kurmak zorunda kalmadan daha iyi bir uyumluluğa sahip olacak başka bir dosya sistemi var mı?

Yanıtlar:


57

İlk olarak, UDF dosya sistemini oluşturmadan önce sürücüyü tamamen sıfırladım:

dd if=/dev/zero of=/dev/sdx bs=512

Bu, işletim sistemlerinin dosya sistemi tipini saptamaya yol açabilecek artık süper bloklardan veya diğer meta verilerini önlemek içindir (en azından ilk sektörü sıfırlamak, bölüm tablosunu yok etmek için gerekli olmalıdır; ilk birkaç sektör UDF tarafından kullanılmaz ve kalanlar) bölümleme tablosu gerçekten işleri karıştırabilirdi). Ayrıca count=1, test edilmemiş olsa da, sürücünün ilk 512 baytını (MBR genellikle içinde bulunur) daha hızlı sıfırlamak için dd komutundaki anahtarı kullanabilirsiniz .

Dosya sistemini oluşturmak için kullandığım komut şuydu:

mkudffs --media-type=hd --blocksize=512 /dev/sdx

mkudffsBir udftoolspaketi yükledikten sonra Debian tabanlı Linux dağıtımlarında (Ubuntu gibi) komut verilecektir :

sudo apt-get install udftools

Varsayılan blok boyutu mkudffs, 2048'dir; bu, bir USB flash sürücü için yanlışdır (512 bayt sektörler kullanır). Blok boyutu dosya sistemi meta verilerini bulmak için kullanıldığından, yanlış bir blok boyutu kullanmak UDF dosya sistemi olarak tanınmamasını sağlayabilir (çapa dosya sistemi sürücüsünün beklediği yerde olmayacak çünkü). mkudffsMan sayfasının yanlış olduğuna dikkat edin ; 512, blok boyutu için geçerli bir değerdir (ve kod açıkça kabul eder).

Ayrıca bölüm yerine tüm sürücüyü kullandım; bu daha uyumlu olmalı.

Şimdiye kadar yaptığım testlerin sonucu:

  • En son çekirdeğe sahip Linux (2.6.31, Ubuntu 9.10'dan): çalışır.
  • Eski bir çekirdeğe sahip Linux: bu bs=512seçeneğe ihtiyaç duyuyor mount, çünkü cihaz sektörü boyutu yerine 2048'i yanlış kullanıyordu ( 1197e4d ile sabitlendi ).
  • Windows Vista: çalışır.
  • Yepyeni bir Mac: çalışır.
  • Windows XP: para cezası okuyabilir, ancak yazmaya çalışırken "reddedildi" ifadesini verir; Ayrıca diskin dolu olduğunu düşünüyor gibi görünüyor.

Şimdiye kadar 4G'den büyük bir dosya oluşturmayı denememiş olmama rağmen, çalışmamasının nedenini göremiyorum.

Son işletim sistemlerinde mükemmel bir şekilde çalıştığı göz önüne alındığında (yalnızca Linux'a elle bağlanması gerekir; bu, Ubuntu 9.10 ve Fedora 12 çıktığı sürece artık gerekmeyecek) ve Windows XP'de salt okunur çalıştı (ki bu bir sürprizdi). bana göre, dosya sistemini hiç tanımamasını bekliyordum), büyük USB flash sürücülerinde FAT32 veya NTFS yerine UDF kullanmak iyi bir fikir gibi görünüyor.


1
sürücüyü nasıl biçimlendirdiniz / bölümlediniz? dd if=/dev/zero of=/dev/sdb bs=1MHerhangi bir bölümleme tablası olmadan bırakarak 32GB'lık USB sürücümü sıfırladım .
romeovs

4
@romeovs: Sürücüyü bölümlemedim. Bölüm tablosunu ve eski dosya sistemi artıklarını kaldırmak ve UDF dosya sistemini tüm bölümlenmemiş sürücüye koymak için onu sıfırlamanın tam noktası budur. Bir bölüm tablosu oluşturmak, yalnızca kafa karıştıran riskleri doğurabilir.
CesarB

3
500 GB'lik bir SeaGate FreeAgent Masaüstü USB 2.0 harici sabit diskiyle benim için çalışmadı (bu iş parçacığının Flash sürücülerle ilgili olması gerektiğinden emin değilim). Windows 7 her zaman Disk Yönetimi yardımcı programında sürücüyü "ayrılmamış" olarak gösterdi. Birkaç farklı seçenek kombinasyonu denedim.
Adam Monsen 17:12

2
Takip için çok teşekkürler. İlk defa olmasa da, birkaç gün / hafta testten sonra OP tarafından ayrıntılı olarak yanıtlanan akıllı bir soru gördüğüm nadirdir. Harika iş, teşekkürler!
Luc

1
Ayrıca, UDF oluşturma işlemini otomatikleştiren ve daha iyi uyumluluk için bir bölümleme tablosu yapan Pieter Wuille'den gelen betiğe de bakın . Alternatif bir çözüm olarak gönderdim .
dolmen

7

CesarB, sorunun yoğunluğuna ulaşmak için iyi bir iş yaptı. Yeterince vurgulanamayan bir şey UDF'yi biçimlendirirken uygun blok boyutunu kullanmanın ne kadar önemli olduğudur.

CesarB'nin görevinden (ve diğer araştırma / testlerimden) esinlenerek, doğru şekilde algılanan sektör boyutunu kullanarak UDF'de biçimlendirme işlemini otomatikleştirmek için bir senaryo yazdım. GitHub'da format-udf'a bakınız . Önemli özellikleri:

  • Evrensel Disk Formatında (UDF) bir blok sürücüyü (sabit sürücü veya Flash sürücü) formatlar
    • UDF revizyonu 2.01 maksimum uyumluluk için kullanılır
    • Mevcut 40 MBR'yi silmek için ilk 4096 sektör sıfırlandı (uygun UDF algılama için gerekli)
  • Ortaya çıkan dosya sistemi birden fazla işletim sistemi ailesi (Windows, OS X ve Linux) üzerinden okunabilir / yazılabilir
  • Bash ortamına sahip tüm işletim sistemlerinde çalışır

Son noktadan dolayı, yazdığım bu script Windows'da kullanılamıyor. Ancak, komut dosyası OS X ve Linux üzerinde çalışacak. Bunu yaptıktan sonra, Windows yeni biçimlendirilmiş UDF sürücüsünü sihirli bir şekilde tespit edebilmelidir.

Yayınlanan soruları doğrudan cevaplamak için, format-udf:

  • işletim sistemi ve çevreye göre biçimlendirme için uygun aracı seçin
  • biçimlendirme için gerekli tüm parametreleri otomatik olarak algıla ve doldur
  • İşletim Sistemi uyumluluğunu en üst düzeye çıkarın (uyumluluk tablosu için GitHub sayfasına bakın)
  • Askerin aradığı maksimum özellik setini (ve asgari kısıtlamaları) vermek

1
Github'daki format-udf uygulamanıza bir göz attım ve bununla ilgili bir sorum var. Komut, sürücünün fiziksel blok boyutunu algılar. Linux parametresinin "fiziksel sektör (blok) boyutunu" çağırdığından ve "mantıksal sektör boyutunun" kullanılmadığından emin misiniz? Fiziksel ve mantıksal birçok şey anlamına gelebilir. Ne hdparm"Fiziksel sektör boyutu" bir tahrik iç şeydir oysa "Mantıksal sektör boyutu" olarak adlandırdığı, SATA protokolü tarafından kullanılan adresleme birimidir. Bana göre, UDF spesifikasyonundaki "fiziksel blokların" gerçekten Linux'un "mantıksal blokları" anlamına geliyor.
Johan Myréen

Neredesin, @ JohanMyréen. Sizi GitHub'daki bu konuyla ilgili tartışmaya katılmaya davet ediyorum. github.com/JElchison/format-udf/issues/13 Windows 7 ve 10. ek sınama bekleyen Sorunuzun çizgisinde yakın bir değişiklik var
j0nam1el

1
format-udf gerçekten çok hoş. Sadece Linux üzerinde test etti ve biçimlendirilmiş sürücüyü OS X ve Windows 10'da okuyabilir / yazabilirdi.
mivk

"Bash ile herhangi bir işletim sistemi üzerinde çalışabilme" yeteneği bazı çekiciliğe sahip olsa da, aynı yaklaşımı mkudffsdoğrudan uygulamak daha iyi olurdu ; Yeni bir --best-block-sizeseçenek ekleyerek demek istiyorum mkudffs.
MarcH

3

Bunu yaptığımı hatırlıyor gibiyim, bulduğum problem şuydu ki linux versiyonunun sadece okuma için okudum, çünkü sürücü r / w için yapılmamıştı. Pencerelerde işe yaradı ve sanırım mac.

Evet, iyi bir çözüm bulmak zor. Bir süredir win32 ve mac sürücüleri, mac bölümü ve büyük ext3 bölümü içeren fat32 bölümü olan bir harici diskim vardı. İşe yaradı, ancak sürücü yüklemek anlamına geliyordu. Düzgün bir numara, aynı zamanda bir mac (fw & usb) üzerine önyüklenebilir olmasıydı, boşluk bırakmak ve bazı notlar almak zorundasınız, daha sonra komut satırı ve mac bölümleme tablosu yoluyla bölümler ekleyebilirsiniz.

Dünyanın özgür, her şeyde kullanılabilir bir dosya sistemine ihtiyacı var. ZFS iyi bir seçim olacaktır. :-)


ZFS'nin olması iyi olurdu, ama birçok insanı şaşırtıyordu. Aynı zamanda dış medya için biraz overkill, öyle değil mi? Dev dosya sunucuları için daha uygun.
Mike Cooper

2
ZFS, toplama ve hata kurtarma işlemlerini kontrol ediyor, bu da lapa lapa tüketici olayları için çok anlamlı. :-D Bu günlerde hepimiz bit çürüklüğünün sonunda bir şeyler yiyeceği kadar yeterince saklıyoruz. Her şeyin kullanabileceği gerçek bir fs'ye ihtiyacımız var ve fatX öyle değil. Henüz burada değil, gerçekten.
Ronald Pottol

ZFS Linux'ta çalışmıyor
9:12


1

Maksimum uyumluluk elde etmek için , en azından 2.0 sürümünde udftools projesinden mkudffs kullanmalısınız . Özel bir parametre gerekmez, her şey otomatik olarak belirlenir.

3 büyük kısıtlama var:

  1. Microsoft Windows sistemleri, MBR veya GPT bölüm tablosu yoksa, çıkarılamayan sabit diski tanımıyor.

  2. Apple Mac OS X sistemleri, bölümlenmiş diskteki UDF dosya sistemini tanımıyor.

  3. Muhtemelen tüm sistemler (son Linux çekirdeği hariç), UDF blok boyutu diskin mantıksal kesim boyutuyla eşleşmiyorsa UDF dosya sistemini tanımıyor.

2.0 sürümünden bu yana aracı mkudffs, tüm 3 kısıtlamaları uygular. olmayan çıkarılabilir sabit diskleri biçimlendirme, bu sektörde 0 başlar ve bütün diski yayılan "sahte" MBR tablosu oluşturur. Yani UDF dosya sistemi okunabilir ya da (Apple Mac OS X için gerekli) bütün diskten (Microsoft Windows için gerekli) ilk bölümünden. Daha fazla bilgi için mkudffs 2.0 man sayfasına bakın.


0

NTFS-3G ile NTFS, Linux kullanıyorsanız buna yazmak ve bir göz alabilir http://macntfs-3g.blogspot.com/ Mac için.


4
Bu Mac için ekstra sürücüler içeriyor gibi görünüyor.
Mike Cooper

Eğer FAT kullanmak istemiyorsa, takılı kalmış ve NTFS-3G Mac'te çalışıyor, zaten yazmak için bağladığım şeye ihtiyacı var.
user10547 12:09

4
Hafif bir sorun, benim Mac olmam. Başkalarının bilgisayarlarına bir sürücü kurmamayı tercih ederim.
CesarB

-1

EXT3 bölümlerine erişebilen Windows (ve Mac) sürücüleri vardır, böylece EXT3'e biçimlendirebilir ve (sürücülerle birlikte) her yere kullanabilirsiniz. Başka bir yol da, büyük dosyayı her biri 4 GB'a kadar iki veya daha fazla dosyada saklamak için bir arşiv kullanmaktır. Bu şekilde, evrensel olan FAT32 dosya sistemini kullanabilirsiniz. Ana bilgisayarda kullanmak için arşivi çıkarmanız gerekir, ancak bu, sürücüleri olmadan yapmanın bir yoludur. ZIP formatının da işe yarayabileceğini düşünüyorum, ancak Windows, Linux, Mac'te çalıştığı için bir RAR format arşivleyicisi kullanın. Ama ben sürücülerle giderdim. Kurulduktan sonra kısıtlama olmadan bir şey yapabilirsiniz. PC'de tam EXT2, EXT3 ve EXT4 erişimi için Ext2Fsd'yi ve tam MacOS formatı erişimi için Macdrive'ı kullandım. Linux ve MacOS için NTFS bölümlerine vb. Tamamen erişebilmek için kesinlikle benzer araçlar var. Yalnızca okuma erişimine ihtiyacınız varsa, sürücüye ihtiyacınız yoktur, Linux ve MacOS NTFS bölümlerinin okunmasını destekler, bu yüzden USB'yi NTFS olarak biçimlendirin! Tüm bu bilgisayarlar aynı ağdaysa, işler daha kolaydır! USB'yi her iki formatta yapın ve ağ üzerinde paylaşın. Diğer bilgisayarlarda erişimde sorun olmamalıdır!


2
-1 çünkü cevap UDF'den bile bahsetmiyor!
dolmen
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.