2012-05-09 22 views
6
için geçerli bağımsız değişkenler

Ben man page parçalarını okudum, fakat geçerli parametreler ile ilgili herhangi bir belge bulamadık. Bir USB CompactFlash'ı belirli bölüm boyutlarıyla (CF boyutundan bağımsız olarak) bölümlemeye çalışıyorum. Fakat hizalamamın kusursuz ve doğru olduğundan emin olmak isterim.Bölünmüş

Örneğin

, ben aşağıdaki komutları kullandığınızda: İlk bölüm başlangıç ​​1 veya 0 olması gerekiyorsa net değil

parted -s -a optimal $DEV mkpart primary ext3 1 1600 
parted -s -a optimal $DEV mkpart primary ext3 1600 3200 
parted -s -a optimal $DEV mkpart primary ext3 3200 3600 

? Ben çalıştırdığınızda ben yerine bir sıfırdan büyük bir 1'den başlaması gerektiğini olsun tek ipucu: söylüyor

parted /dev/sdc align-check optimal 1 

o hizalanmış 1'den başlayarak zaman hizalanmış ve edilmez 0. Ama ne zaman başlayıp ne zaman 1 ile başlayın ve ben 'print' yapacağım, başlangıç ​​1049kB'de ... bu normal mi? Diğer araçların oluşturduğu baskı bölümlerini döktüğümde, bunların 32kB'de başladığını görüyorum. 0'ın bir başlangıcını kullanırsam, 512kB'lik bir başlangıç ​​yazdırır. Hangisi doğru, bilmiyorum! Ayrıca, ikinci ve üçüncü bölümler için başlangıç ​​değerlerini kullanan bir çok örneği, önceki bölümün bitiş değeri olarak (örn: 1600 ve 3200 değerleri) kullanan birçok örnek gördüm. 1 ile bir çakışma veya artış var mıyız? Adam sayfaları bunun hakkında hiçbir şey söylemiyor. Ve bazı web sayfalarını, başlangıç ​​için sonun aynı değeri olan bir hata olduğunu söylediler.

'-a optimal' kullandığımda, bölümümü bile etkilemiyor gibi görünüyor. Hizalama bayrakını kullanmamak aynı sonucu veriyor gibi görünüyor. Bunun amacı nedir? Kaybettiğim bir şey mi var?

Gerçekten ayrılmak isterdim çok daha zeki ve bir başlangıç ​​gerektirmez, bunun yerine kendiliğinden çıkabilirdi. Aslında pek çok insanın bu kesin özelliğe ihtiyacı var gibi görünüyor, bu yüzden bu ihtiyacın olan tek garip top ben değilim. Umarım bazı ineklerin bu ihtiyacı görecek ve aslında bir özellik olarak ekleyecektir.

Otomatik derleme komut dosyasında ayrılmıyorum. Bu yüzden '-s' bayrağı kullanıyorum.

Bu konuda beni aydınlatacak biri varsa, bunu çok takdir ediyorum ... şimdiden teşekkürler!

+0

Bu soru superuser StackExchange sitesinde uygun olurdu. – BeowulfNode42

cevap

17

Sanırım burada bir kaç ilginç soru yaptınız, kimsenin daha önce hiç cevap vermediği, bu yüzden yapmaya çalışacağım. Bir diskin ilk bayt Master Boot Record ve MS-DOS olarak miktar disk etiketleri, yapısını içerdiğinden


It's not clear if the first partition start should be 1 or 0?

ilk bölüm başlangıç ​​

, 1 olmalıdır. Bu nedenle, ilk bölüm başlangıcı olarak 0 değerini kullanırsanız, libparted bu içeriğe izin vermek için diskin başına birkaç bayt bırakarak bölümün ilk sektörden hemen sonra başlamasını sağlar.


the start is at 1049kB... is this normal?

normaldir. Bunu açıklamak için öncelikle libparted için bir kilobaytın 1024 bayta eşit olmadığını, bunun yerine 1000 bayta eşit olduğunu bilmelisiniz.

KB = kilobayt = 1000Bytes
KiB = kibibyte = 1024Bytes

fazla bilgi:
http://en.wikipedia.org/wiki/Kilobyte
http://www.gnu.org/software/parted/manual/html_node/unit.html

ofset bölümü KB olarak (kilobayt) ve değeri yaklaşık bir birimi bayt olarak değiştirirseniz:

parted /dev/sdf unit b print 

gerçek değeri göreceksiniz: 1048576B, 1MiB (1048576B ~ = 1049KB), tam olarak istediğiniz şeyi. Kullandığınız aracı muhtemelen çok eski olduğu için

I see that they start at 32kB

Evet


, bölüm 32 KB başlar ve 512 bayt sektör boyutuna sahip bir disk kullanıyoruz. Bölümün gerçek başlangıç ​​ofseti muhtemelen sektöre 63 karşılık gelen 32256'dır. Yıllar önce, bölümleme araçları, ilk bölümün başlangıcını, 63. sektörde, eski CHS geometrisine hizalamak için yerleştirir. Bu açıklamaya çok uzun, ama daha detaylı bilgi için bu bağlantıları incelemenizi öneririz:

https://superuser.com/questions/352572/why-does-the-partition-start-on-sector-2048-instead-of-63 http://lwn.net/Articles/377895/


If I use a start of 0, it prints a start of 512kB

Ben 512B de başlangıcını değil, KB yazdırır düşünüyorum , Yanlış mıyım?
512 baytlık disklerinizde, ilk sektör ofset 511 ile biter, bu yüzden size yukarıda bahsettiğim gibi, ilk bölüm ilk sektörden sonra başlar.

Are we suppose to have an overlap or increment by 1?


Ben size bölümlerin Mevcut yerleşimi görürsünüz ve bunların üst üste gelmemesine kontrol edebilirsiniz, bayt birimini değiştirmek.


varsayılan olarak, MiB ile çalışmalarını aralandı çünkü

What purpose is this for? Is there something I'm missing?

. Eğer yazdığınızda: MiB # 1 ve # 1600 tekabül uzaklıklar arasında bölme oluşturmak için

parted -s -a optimal $DEV mkpart primary ext3 1 1600 

Sen ayrıldı soruyorsun. MiB ile hizalanmış ofsetler her zaman en iyi performans için hizalanır, dolayısıyla -a optimal belirtmek gerekli değildir. Bu hatayı göstermiştir

parted $DEV unit b mkpart primary 1000000 160MB 
parted $DEV align-check optimal 1 

: Eğer bayt birimini değiştirirseniz olmayan bir hizalanmış bölümü oluşturabilirsiniz The resulting partition is not properly aligned for best performance.

Yani, -a none seçeneğiyle aynı şeyi deneyin:

parted -a none $DEV unit b mkpart primary 1000000 160MB 

Artık bir hata yok, bu seçeneğin amacı budur.


I really wish parted would be a lot more intelligent and not require a start, but rather could deduce it itself.

O özellik libparted kullanan herhangi bir araç tarafından uygulanacağına dair düşünüyorum, ama kütüphanede gerekli olmadığını düşünüyorum ... ama kim bilir? Belki bazı libparted geliştiriciler dinliyor ... bir hata raporu göndermeyi denediniz mi? [email protected]