Depolama sürücüsünü biçimlendirme terminal yöntemi


59

Bir depolama sürücüsünün terminalden nasıl formatlanacağını bilmek istiyorum. Cevapta verilecek faydalı şeyler genellikle komutlar için seçenekler kullanılır ve birinin gelecekteki kullanımlarını tahmin etmek için kullanabileceği temel bilgiler kullanılır. Özellikle, NTFS, FAT32, EXT4 vb. Gibi farklı dosya sistemlerinde nasıl formatlanacağını bilmek istiyorum. Ayrıca, sürücünün terminal yoluyla nasıl bölüneceği hakkında da bilgi istiyorum.

Terminalden yüksek kapasiteli bir harici sabit diski (EHDD) NTFS'ye biçimlendirmeye çalışıyorum.

Bunun için gparted ve diğer GUI programlarını kullanabileceğimi biliyorum, fakat hala terminalden nasıl yapılacağını istiyorum.


1
-mCevap verecek kişilere: ayrılmış alandaki seçeneği açıkladığınızdan emin olun - konuyla ilgili.
Volker Siegel

Yanıtlar:


66

Mevcut birkaç seçenek var:

  1. fdisk(daha eski, GPT 4'ü desteklemez ).
  2. parted (GParted'in CLI kardeşi).
  3. mkfsZaten bölümleriniz varsa ve formatlamak istiyorsanız çeşitli programlar.

fdiskve partedetkileşimlidir ve yardım komutlarına sahiptir; böylece programda her zaman yardım arayabilirsiniz. Her ikisi de komut dosyasıdır. mkfsKomutlar etkileşimli değildir.


fdisk

fdiskBir cihazı (örneğin /dev/sda) argüman olarak bekler . Aşağıdaki komutlara sahiptir:

Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the DOS compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

fdiskO kadar kullanmıyorum . Sadece odaklanacağım:


parted

parteddeğil ihtiyaç bir tartışma (o "tahmin" etmeye çalışır), ancak her zaman diski belirtmelidir. Seçim göz önüne alındığında tercih partedettiğiniz programdır. Aşağıdaki komutlara sahiptir:

  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  check NUMBER                             do a simple check on the file system
  cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on partition NUMBER
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system
  resizepart NUMBER END                    resize partition NUMBER
  move NUMBER START END                    move partition NUMBER
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  resize NUMBER START END                  resize partition NUMBER and its file system
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted

Komutlar benzersiz bir önekle sözleşilebilir (örneğin, hkısadır help).

Size /tmp/partkomutları göstermek için oluşturduğum geçici bir dosya ( ) kullanacağım , böylece boyutlar biraz küçük olacak. Bunu ihtiyacınız olan cihazla değiştirmelisiniz ( /dev/sdaörneğin).

Öncelikle, eğer diskinizde bir bölüm tablosu yoksa, bir tane oluşturmalıyız:

parted /tmp/part mklabel gpt

veya mklabel msdos, eski 4-ana bölümden oluşan bir bölümü istiyorsanız ( MBR veya MSDOS bölümleme tablosu adı verilir ). Sonra, 3GB'tan başlayarak (yani ilk 3G'yi serbest bırakarak) ve 2GB boyutunda (yani 5GB'da biten) başlayan bir ext4 bölümü oluşturduk. partediçin MB cinsinden konumlar bekliyor mkpartfs, ancak soneki belirtebiliriz:

parted /tmp/part mkpart primary ext4 3G 5G

Ve bir tane daha, şimdi 1GB’lık bir NTFS bölümü:

parted /tmp/part mkpart primary ntfs 5G 6G

Sonuç:

# parted /tmp/part print
Model:  (file)
Disk /tmp/blah: 10.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      3000MB  5000MB  2000MB               primary
 2      5000MB  6000MB  1000MB               primary  msftdata

SI öneklerini nasıl kullandığına dikkat edin, GParted ise sabit olarak ikili önekleri kullanır (saçmalamayı düşürürken i). Bölümleri etiketleyeceğim:

# parted /tmp/part name 1 hello
# parted /tmp/part name 2 world
# parted /tmp/part print
Model:  (file)
Disk /tmp/blah: 10.4GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system  Name   Flags
 1      3000MB  5000MB  2000MB               hello
 2      5000MB  6000MB  1000MB               world  msftdata

İken parteddosya sisteminin bölümleri yaratabilirsiniz ntfs(!) Sadece iyi, bu NTFS olan bir bölümü biçimlendirme edemez:

mkfs partition fs-type
         Make a filesystem fs-type on partition. fs-type can be one 
         of "fat16", "fat32", "ext2", "linux-swap", or "reiserfs".

Gerçekten de, bölümlenmiş dosya , bölümleri değiştirmek için kullanmanız gerektiğini söyler, dosya sistemlerini değil , bu da beni bana getirir:


mkfs

mkfsgibi fsck, aslında, çeşitli dosya sistemine özgü komutların bir ön yüzüdür. Örneğin benim sistemde, üzerinde mkfs.bfs, mkfs.cramfs, mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.ext4dev, mkfs.fat, mkfs.minix, mkfs.msdos, mkfs.ntfs, mkfs.vfatmevcuttur.

Şimdi, ne yazık ki, partedbir dosya üzerinde gayet iyi çalışırken , yukarıda kullandığım gibi, mkfsbu tür dosyalardaki bölümleri aramaya gidemem. Aslında, ben yeni bir dosya kullanmak için gidiyorum eğer öyleyse, cihazları bloke beklediği /tmp/fileiçin mkfsbunu yapmak zorlamak zorundayız. Biçimlendirmek istediğiniz bölüme karşılık gelen blok aygıtını kullanırsınız /dev/sda2. Genel sözdizimi mkfsşudur:

# mkfs --help
Usage: mkfs [options] [-t type fs-options] device [size]

Options:
 -t, --type=TYPE  file system type, when undefined ext2 is used
     fs-options   parameters to real file system builder
     device       path to a device
     size         number of blocks on the device
 -V, --verbose    explain what is done
                  defining -V more than once will cause a dry-run
 -V, --version    output version information and exit
                  -V as version must be only option
 -h, --help       display this help and exit

For more information, see mkfs(8).

Gördüğünüz gibi, -tbayrak dosya sistemine özgü bayrakları geçmemize izin veriyor. Örneğin, NTFS bayrakları:

# mkfs.ntfs --help 
Usage: mkntfs [options] device [number-of-sectors]

Basic options:
    -f, --fast                      Perform a quick format
    -Q, --quick                     Perform a quick format
    -L, --label STRING              Set the volume label
    -C, --enable-compression        Enable compression on the volume
    -I, --no-indexing               Disable indexing on the volume
    -n, --no-action                 Do not write to disk

Advanced options:
    -c, --cluster-size BYTES        Specify the cluster size for the volume
    -s, --sector-size BYTES         Specify the sector size for the device
    -p, --partition-start SECTOR    Specify the partition start sector
    -H, --heads NUM                 Specify the number of heads
    -S, --sectors-per-track NUM     Specify the number of sectors per track
    -z, --mft-zone-multiplier NUM   Set the MFT zone multiplier
    -T, --zero-time                 Fake the time to be 00:00 UTC, Jan 1, 1970
    -F, --force                     Force execution despite errors

Output options:
    -q, --quiet                     Quiet execution
    -v, --verbose                   Verbose execution
        --debug                     Very verbose execution

Help options:
    -V, --version                   Display version
    -l, --license                   Display licensing information
    -h, --help                      Display this help

Developers' email address: ntfs-3g-devel@lists.sf.net
News, support and information:  http://tuxera.com

Öyleyse hızlı biçimlendirme ( -Q) ile blok dışı bir dosyada ( -F) çalışmaya ve bir etiket ( -L "hello world") ayarlamaya zorlayarak bir NTFS bölümü oluşturalım .

# mkfs -t ntfs -F -Q -L "hello world" /tmp/file
/tmp/file is not a block device.
mkntfs forced anyway.
The sector size was not specified for /tmp/file and it could not be obtained automatically.  It has been set to 512 bytes.
The partition start sector was not specified for /tmp/file and it could not be obtained automatically.  It has been set to 0.
The number of sectors per track was not specified for /tmp/file and it could not be obtained automatically.  It has been set to 0.
The number of heads was not specified for /tmp/file and it could not be obtained automatically.  It has been set to 0.
Cluster size has been automatically set to 4096 bytes.
To boot from a device, Windows needs the 'partition start sector', the 'sectors per track' and the 'number of heads' to be set.
Windows will not be able to boot from this device.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.

Açıkçası bir dosya üzerinde çalışmaktan hoşlanmadı. :) Endişelenmeyin, gerçek bir disk üzerinde çalışırken çoğu değeri otomatik olarak algılamalıdır. Bu "dosya" bile bir dosya sistemi olarak çalışıyor:

# mount -t ntfs-3g /tmp/file /mnt
# touch "/mnt/a file in mnt"
# ls -l /mnt
total 0
-rwxrwxrwx 1 root root 0 Aug 29 06:43 a file in mnt
# umount /mnt
# ls -l /mnt
total 0

(Garip izinlere bakınız?)


Notlar:

  1. Ben kullanmadıysanız sudohenüz bu cevap her yerde. Dosyalar ve bana ait olan dosyalar üzerinde çalıştığım için ihtiyacım yoktu sudo. partedseni bu konuda uyaracağım. Genellikle hep aittir blok cihazlar için root, ihtiyacınız olacak sudo(veya üzeri bir kök kabuğu kullanmak gerekecek sudo -iya sudo su -).
  2. partedbir GNU programıdır ve birçok GNU programı gibi infoformatta da kapsamlı dokümantasyona sahiptir . Yükleyin parted-doc( sudo apt-get install parted-doc) ve sonra çalıştırın info parted. Çevrimiçi kullanım kılavuzunu da kontrol edebilirsiniz .
  3. GParted, bir bölümü uygun mkfsprogramı doğrudan çağırdığı için NTFS'ye biçimlendirebilir ( mkntfsbu durumda - mkfs.ntfssadece bir bağlantıdır mkntfs). Aynı zamanda bir dizi parametre belirler. Aslında, çoğu işlem için hangi komutların çalıştırıldığını görmek için GParted mesajlarının ayrıntılarını inceleyebilirsiniz.
  4. GPT ve MBR / MSDOS bölümleme tablolarının özelliklerine girmeyeceğim, ancak GPT'nin özellikle Windows 8 kullanıyorsanız, UEFI içeren yeni cihazlarda bulunması muhtemel. Bölümleme araçlarının durumu? GPT ile karşılaştığınızda hangi araçların mevcut olduğunu tartışır.
  5. LVM, ZFS ve btrfs bir başka oyun. Hepsinde eşlik eden araçlar vardır ve bunları yerine partedveya kullanmanız gerekir fdisk(belki de kullanımları için bölüm oluşturma ilk adımı hariç).

partedKullanım hakkında not :

Programın sözdizimi parted:

parted [options] [device [command [options...]...]]

Bir partedkomut olmadan çalıştırdığınızda , şöyle:

parted /tmp/parted

Yukarıdaki komutları çalıştırabileceğiniz basit bir kabuk sunulacak. Ancak, bu komutlar doğrudan partedprogram kullanılarak da çalıştırılabilir . Yani bu üç eşdeğerdir:

# parted /tmp/parted
GNU Parted 2.3
Using /tmp/parted
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt

Ve

# parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /tmp/parted
Using /tmp/parted
(parted) mklabel gpt

Ve

parted /tmp/parted mklabel gpt

Ayrıca, bölümler oluştururken bölümlerin partedsonunun yararlı bir göstergesinin ( -1stire ile "s" arasında "1" olduğunu unutmayın). Bu, bölümünüzün belirtilen bir başlangıçtan diskin geri kalanına yayılmasını istiyorsanız yararlıdır. Daha spesifik olmak, koşmak

parted /dev/sda -- mkpart primary ext4 3G -1s

Bunun bir bölümü /dev/sda3G'de başlayıp /dev/sdadiskin son bölümünde biter (yani 3G'den diskin geri kalanına kadar uzanır). Geçersiz bir seçenek olarak yorumlanmamak --için gerekli olduğuna dikkat edin 1s.


IMHO, gdisk, aka GPT fdisk, ayrılıktan üstün
Ethan Reesor

1
@FireLizzard excellent! Lütfen nasıl kullanılacağına dair ayrıntılı bir cevap gönderin.
muru

soru açıkça bir diski nasıl biçimlendireceğinize ilişkin olsa da neden ayrık ve fdisk'ten bahsediyorsunuz? Kendinden bile söz ediyorsun, parçalı bir diski formatlayamıyorsun.
zunder'de

@kreide tekrar okundu: "Sürücünün terminalden nasıl ayrılacağına dair bilgi de isteniyor."
muru,

11

Öncelikle, sabit sürücünüzü fdisk yardımcı programıyla nasıl bölümleyeceğinize karar vereceksiniz.

Linux sadece 4 birincil bölüme izin verir. Birincil bölümlerden birini alt bölerek çok daha fazla sayıda mantıksal bölüme sahip olabilirsiniz.

Birincil bölümlerden sadece bir tanesi alt bölümlere ayrılabilir.

fdisk, komut isteminde root fdisk aygıtı olarak yazılarak başlatılır.

Aygıt / dev / sda veya / dev / sdb gibi bir şey olabilir

İhtiyacınız olan temel fdisk komutları:

p print the partition table

n create a new partition

d delete a partition

q quit without saving changes

w write the new partition table and exit

Bölüm tablosunda yaptığınız değişiklikler, write (w) komutunu verene kadar geçerli olmaz.

İşte örnek bir bölüm tablosu:

Disk /dev/sdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sdb1   *         1       184    370912+  83  Linux
/dev/sdb2           185       368    370944   83  Linux
/dev/sdb3           369       552    370944   83  Linux
/dev/sdb4           553       621    139104   82  Linux swap

Örnek:

Fdisk'i kabuk isteminden başlatın:

sudo su
fdisk /dev/sdb 

Bu, ikinci sürücüyü SATA denetleyicinizde kullandığınızı gösterir.

Command (m for help): p

Disk /dev/hdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

That makes for 384Mb per partition. 
Now You get to work.


Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-621, default 1):<RETURN>
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-621, default 621): +384M

Next, You set up the partition You want to use for swap:


Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (197-621, default 197):<RETURN>
Using default value 197
Last cylinder or +size or +sizeM or +sizeK (197-621, default 621): +128M

Şimdi bölüm tablosu şöyle görünür:

 Device Boot      Start       End    Blocks   Id  System
/dev/sdb1             1       196    395104   83  Linux
/dev/sdb2           197       262    133056   83  Linux

Sonunda, ilk bölümü önyüklenebilir hale getirin:

Command (m for help): a
Partition number (1-4): 1

And You make the second partition of type swap:


Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)      
Command (m for help): p

Sonuç:

Disk /dev/sdb: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sdb1   *         1       196    395104+  83  Linux
/dev/sdb2           197       262    133056   82  Linux swap

Son olarak, tabloyu diske yazmak için write komutunu (w) verirsiniz.


mkfs yardımcı programı, Linux sisteminizde dosya sistemi (ext2, ext3, ext4, vb.) oluşturmak için kullanılır.

Oluşturulacak dosya sisteminin mkfs için cihaz adını belirtmelisiniz.

Kullanılabilir Dosya Sistemi Oluşturucu Komutlarını Görüntüleyin

Dosya sistemi üreticileri (mkfs * komutları) genellikle / sbin /, / sbin / fs, /sbin/fs.d, / etc / fs ve / etc gibi dizinlerde aranır.

Bulunmazsa, sonunda PATH değişkeninde bulunan dizinleri arar.

Aşağıdaki liste bir sistemde mevcut mkfs * komutlarını gösterir.

sudo su
cd /sbin
ls mkfs*

mkfs  mkfs.bfs  mkfs.cramfs  mkfs.ext2  mkfs.ext3  mkfs.ext4  mkfs.ext4dev  
mkfs.minix  mkfs.msdos  mkfs.ntfs  mkfs.vfat

Belirli Bir Aygıtta Dosya Sistemi Oluşturma

Dosya sistemini mkfs komutunu kullanarak oluşturmak için, gerekli argümanlar aşağıda gösterildiği gibi cihaz-dosya adı ve dosya sistemi tipindedir.

Aşağıdaki örnek / dev / sdb1 bölümünde ext4 dosya sistemi yaratmaktadır.

sudo su
mkfs -t ext4 /dev/sdb1 

mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1120112 inodes, 4476416 blocks
223820 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
137 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

Mkfs komutu için varsayılan dosya sistemi tipinin ext2 olduğunu unutmayın.

“-T” seçeneğini belirtmezseniz, ext2 dosya sistemi oluşturur.

Ayrıca, ext2 veya ext3 veya ext4 dosya sistemine sahip olup olmadığınızı belirlemek için daha önce tartıştığımız yöntemi kullanabilirsiniz.


Bir NTFS Sürücüsünü Biçimlendir

Öncelikle, NTFS dosya sistemleri oluşturma yeteneğine ihtiyacınız olacak, bu yüzden ntfsprogs dosyasını kurun:

sudo su 
apt-get install ntfs-3g

İkincisi, bölümü ortadan kaldırır ve NTFS olarak yeniden yaratırsınız.

sudo su 
umount /dev/sdb1
fdisk /dev/sdb

Options to select:

    ‘d’ to delete the partition
    ‘n’ to create a new partition
    ‘p’ for primary
    ‘1’ for partition number
    ‘Enter’ for first cylinder (default 1)
    ‘Enter’ for last cylinder (default of max size)
    ‘t’ for type
    ‘L’ to list codes, and enter code for HPFS/NTFS. In my case, it’s ‘7’
    ‘w’ to write changes to disk, and exit

umount /dev/sdb1

Son adımda, bölümü ayırın, çünkü Ubuntu sizin için tekrar otomatik olarak monte etti.

Şimdi, dosya sistemini oluşturmanız gerekir. Bunu yapmanın iki yolu vardır: Sabırsızlık yolu (Hızlı Format) veya daha iyi fakat daha uzun yol (Tam Format).

Hızlı biçimlendirme

Bu sadece disk alanını ayırır, ancak sürücüyü sıfırlamaz veya bozuk kesimleri denetlemez. Bu, birkaç saniye alacağı anlamına gelir.

sudo su 
mkfs.ntfs -f /dev/sdb1

Tam biçim

Veri bütünlüğü konusunda daha fazla endişeleniyorsanız ve beklemenin sakıncası yoksa, tam bir biçim kullanın.

Bu büyük bir sürücüyü sıfırlamak için birkaç saat sürebilir!

sudo su 
mkfs.ntfs /dev/sdb1
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.