Cihazın tamamını kullanan tek bir bölümün oluşturulmasını nasıl komut dosyası oluşturabilirim?


9

Özellikle Amazon EC2 bulut sunucularında EBS birimlerini bölümlemek ve monte etmek için kullanıyorum, ancak gerçekten bu genellikle herhangi bir yeni sürücüyü başlatmak için geçerli olmalıdır.

Sorunun söylediği gibi, verilen cihazdaki tüm kullanılabilir alanı kullanan tek bir birincil bölümün oluşturulmasını kodlamak istiyorum. Önceden cihazın ne kadar büyük olduğunu bilmeyeceğim ve çok büyük olabilir (yani birkaç TB).

Bunu araştırırken parted, betik için kullanmak için en iyi komut gibi görünüyor . Bence bir şey parted /dev/sdf mkpart primary 0 ENDistediğim şey, ama END'in ne olması gerektiğini belirlemek için zarif bir yol bulmakta zorlanıyorum. Bunu yapmanın kolay bir yolunu bilen var mı?

Yanıtlar:


11

Bunu şu şekilde yapabilirsiniz:

parted /dev/sdf --script -- mkpart primary 0 -1

5

Diğer cevabı kullanmaya çalıştığımda sorunlarla karşılaştım. Benim için işe yarayan, yüzdeler yaklaşımını şöyle kullanmaktı:

$ parted /dev/sdf --script -- mkpart primary 0% 100%

partedBölümlerin hizalanmasıyla ilgili bir sorun ve bunun nasıl ele alındığı. Bu 2 makale sorunu biraz tartışıyor:

Bu makalelerde özetlenen matematik senaryolarımda işe yaramadı. İkincisinin yorumlarından birine gömülen, yüzdelerin kullanılmasını öneren ve bu işe yarayan birini bağlayın.

Bu arada, genellikle HDD'yi de etiketlemeniz gerekir. Bunu CLI ile şu şekilde yapmak için parted:

$ parted /dev/sde --script -- mklabel msdos

-veya-

$ parted /dev/sde --script -- mklabel gpt

HDD'nize bağlı olarak.


gdiskdoğru hizalar. Bence partedbir karmaşa. Çok fazla şey yapıyor - ve yaptığı şeyler sadece gevşek bir şekilde birbirine bağlı. Dosya sistemlerini ve bölüm tablolarını birlikte nasıl oluşturduğu tuhaf - yazdığı veriler için disk konumları aynı mahallede olduğu gibi değil. Disk bölümünün başında duran küçük bir harita olduğunu fark ettiğimde disklerin nasıl çalıştığını anlamaya başladım ve işletim sistemine isterse dosya sistemini nerede arayabileceğini anlatıyor. Bu tıklandığında, süper blokları ve megaman ve hepsini anladım. Zaten böyle düşünmeyi seviyorum.
mikeserv

Teşekkürler, bu alandaki araçların sitesi her zaman benim için bir karmaşa oldu. Sürekli sfdisk, fdisk, cfdisk, parted, vb. Karıştırıyorum. Fdisk'i deneyeceğim ve daha kolay olup olmadığını göreceğim. Temelde komut dosyalarına dahil etmek için cli seçeneğinden çalıştırılması kolay bir şey arıyor.
slm

Temelde [gf]diskstdinlerini ayırt etmeyin - bir terimden olup olmadıkları umurumda değil. Böylece, istediğinizi elde etmek için etkileşimli olarak girebileceğiniz herhangi bir komut dizisi doğrudan bir printfkomut dosyasına çevrilebilir . Cevabımdaki tüm yeni satırlar sadece (or press enter for default)seçenekler. Oldukça kolay. Onlardan w / oynayabilir geldiğimde yalnızca gidip /tmpve fallocate -l1g imgardından sadece benim yeni kullanmak /tmp/imgbenim diske dosyayı - onlar umurumda değil. Sadece bir bölüm tablosu yazmak istiyorlar. Aynı şeyi yaparsanız, strings -1 imgara sıra ne olduğuna bir göz atın .
mikeserv

Ama daha önce yalan söylüyordum - megaman bana gizemli kalıyor. Belki her zaman yapar.
mikeserv

1
ile parted /dev/sdf --script -- mkpart primary 0 -1en iyi performans için hizalanmamıştır için I bir uyarı aldık. Yüzdelerle iyi gitti
nachoparker

2

Yapabilirsin...

printf 'n\n\n\n\n\nw\n' | fdisk /dev/disk

... msdos türü için. Pratikte aynı şey gpt için de çalışıyor ...

printf 'n\n\n\n\n\nw\ny\n' | gdisk /dev/disk

Ve dosya sistemi oluşturma sırasında diskinizi etiketleyebilirsiniz.

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.