명령 줄에서 ext4 파티션을 만들고 조정하려면 어떻게합니까?


41

분할 (예를 들어 fdisk)
명령 줄에서 추가 하드 드라이브를 분할에 사용되는 유용한 명령은 무엇입니까? 대부분의 게시 된 안내서는 GParted 및 기타 그래픽 유틸리티를 대상으로하기 때문에 일부 명령 줄 시퀀스를 요약하면 도움이됩니다.

튜닝 -예약 된 공간, 쓰기 및 액세스 시간
드라이브가 100 % 가득 찼을 때 따로 (기본적으로) 예약 된 디스크 공간을 제거하는 방법. 나는 단순히 '데이터'를위한 보조 드라이브이므로 예약 영역을 제거하면 전체 드라이브를 사용할 수 있습니다.

또한 쓰기 대 쓰기 (write-through) 대 쓰기 (write-back) 및 파일 및 디렉토리의 액세스 시간 업데이트를 건너 뛰어 성능을 향상시키는 것에 대해 궁금합니다.

답변:


64

무엇보다 먼저:

!! 경고 !!

이 명령은 입니다. 파티션 삭제, 수정 및 포맷 파일 시스템은 데이터를 손상 시키거나 시스템 부팅을 방해 할 수 있습니다. 백업하십시오. 자기 책임으로 사용하십시오. 모든 데이터를 잃어 버릴 염려가없는 컴퓨터를 사용해보십시오. 경고 관리자.


드라이브를 단일 ext4 파티션으로 신속하게 설정하려면 ...

  1. "DISK"클래스의 감지 된 장치보기

    lshw -C disk
    
  2. 기존 파티션 테이블보기

    fdisk -l
    
  3. 선택한 장치의 파티션 테이블을 편집합니다 (이 경우 "sdx").

    fdisk /dev/sdx
    

    FDISK 내에서 다음을 누르십시오.

    • d...에 D elete 현재 파티션

    • n... 만들 n 개의 으으 파티션을

    • p... P RIMARY 파티션 으로 지정

    • 1... 1 ST 기본 파티션으로 설정

    • w...에 w은 변화를 의식.

  4. 새 파티션 테이블을 표시하십시오.

    fdisk -l
    
  5. 새 파티션의 파일 시스템을 유형으로 포맷하십시오 ext4

    mkfs -t ext4 /dev/sdx1
    
  6. 새 드라이브가 마운트 될 새 디렉토리를 작성하십시오.

    mkdir /storage
    mount /dev/sdx1 /storage
    

동조

  1. 이 드라이브는 사용자 데이터 전용이므로 예약 된 블록을 제거하십시오 (예 : 0 %로 설정).

    tune2fs -m 0 /dev/sdx1
    
  2. 서버가 UPS에 있으므로 앱이 실제 디스크 쓰기를 기다리지 않도록 쓰기 저장을 설정하십시오.

    tune2fs -o journal_data_writeback /dev/sdx1
    
  3. 부팅시 마운트 /etc/fstab및 쓰기 저장 정책 설정

    vi /etc/fstab
    
  4. fstab드라이브 와 관련된 줄을 찾거나 추가 하십시오. fstab의 매개 변수는 공백으로 구분됩니다. 예를 들어 위에서 설명한 드라이브는 다음과 같이 나타날 수 있습니다.

    /dev/sdx1 /storage ext4 relatime,errors=remount-ro 0 1
    
    • 첫 번째 매개 변수는 파티션을 식별합니다 (/ dev / 또는 긴 UUID로).
    • 두 번째 매개 변수는 파티션이 마운트 될 경로입니다.
    • 세 번째는 파일 시스템 유형입니다.
    • 네 번째 매개 변수에는 옵션이 있습니다.
    • 다섯 번째는 dump백업 일정입니다. 과,
    • 여섯 번째 매개 변수는 패스 번호입니다 (제어 fsck순서에 사용됨 ).

옵션 (4 번째 매개 변수)을 다음과 같이 변경하십시오.

noatime,nodiratime,data=writeback,barrier=0,nobh,errors=remount-ro

모든 것이 제대로되었는지 확인하기 위해 재부팅하십시오.
이 명령들은 파괴적이라는 것을 기억하십시오! 백업을하고 조심하십시오!


3
스토리지와 ext4 사이에 공백이 있어야합니다. 따라서 명령은 / dev / sdx1 / storage ext4 relatime, errors = remount-ro 0 1과 비슷합니다.
Ganesh Krishnan

좋은 가이드! 적절한 fstab 옵션을 결정하는 방법에 대한 몇 가지 참조를하는 것이 좋습니다 (일부 목록에 대한 링크 만 있으면 좋을 것입니다)
Sander

13

사용 parted

parted(Ubuntu 14.04.4 LTS x64에서 테스트)를 사용하여 새 하드 드라이브에 새 ext4 파티션을 만드는 지침 아래 . parted지원 GUID 파티션 테이블 (GPT)을 달리하고,이어서 상기 2TB 파티션에 사용할 수있다 fdisk.

sudo lshw -C disk *-disk새 하드 드라이브의 논리적 이름을 보는 데 사용 하십시오.

   description: ATA Disk
   product: ST6000NM0024-1HT
   vendor: Seagate
   physical id: 0.0.0
   bus info: scsi@1:0.0.0
   logical name: /dev/sdb
   version: SN05
   serial: Z4D30T30
   size: 5589GiB (6001GB)
   configuration: ansiversion=5 sectorsize=4096

논리적 이름은 /dev/sdb입니다. 시작할 수 있습니다 :

sudo parted /dev/sdb mklabel gpt # Creating the GUID Partition Table (GPT)

을 사용 sudo parted /dev/sdb print하면 GPT가 생성 된 것을 볼 수 있습니다.

username@server:~$ sudo parted /dev/sdb print
Model: ATA ST6000NM0024-1HT (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

또한 디스크 크기를 알아야합니다 (MB를 단위로 사용함).

sudo parted /dev/sdb print unit MB print free

이는 다음을 나타냅니다.

Disk /dev/sdb: 6001175MB

이제 전체 하드 드라이브 공간을 차지하도록 기본 파티션을 생성 할 수 있습니다. 파티션 레이블을 설정하려면

sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MB 

( 우리가 왜 사용하는지 알고 싶다면 https://unix.stackexchange.com/a/49274/16704 참조 --align optimal)

를 사용 sudo parted /dev/sdb print하면 기본 파티션 레이블이 생성 된 것을 볼 수 있습니다.

username@server:~$ sudo parted /dev/sdb print
Model: ATA ST6000NM0024-1HT (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  6001GB  6001GB  xfs          primary

그런 다음 실제로 파티션을 만들려면 mkfs 를 사용해야 합니다.

sudo mkfs.ext4 /dev/sdb1

이제 파티션이 생성되었으므로 마운트해야합니다. 그렇게하려면 sudo nano /etc/fstab다음 줄을 추가하십시오 ( /crimea새 파티션을 마운트하도록 선택한 폴더입니다).

/dev/sdb1       /crimea ext4 defaults   0       0      

폴더를 생성하고 다시로드합니다 /etc/fstab:

sudo mkdir /crimea
sudo mount -a # Remount /etc/fstab without rebooting in Linux

다음을 사용하여 새로운 마운트 파티션을 볼 수 있습니다 df -h.

/dev/sdb1                      5.5T   58M  5.2T   1% /crimea

에서 sudo nano /etc/fstab, 사용하는 대신 /dev/sdb1당신이 사용할 수있는 UUID당신이 찾을 수있는 sudo lshw -C volume:

*-volume
       description: EXT4 volume
       vendor: Linux
       physical id: 1
       bus info: scsi@1:0.0.0,1
       logical name: /dev/sdb1
       logical name: /crimea
       version: 1.0
       serial: c3559307-795b-66db-9844-8e974c88a1cf
       size: 200MiB
       capacity: 5589GiB
       capabilities: journaled extended_attributes huge_files dir_nlink extents ext4 ext2 initialized
       configuration: created=2016-06-24 14:56:55 filesystem=ext4 lastmountpoint=/boot modified=2016-07-01 17:15:55 mount.fstype=ext4 mount.options=rw,relatime,data=ordered mounted=2016-07-01 17:07:19 name=primary state=mounted

그렇지 않으면 간단하게 할 수 있습니다 sudo blkid /dev/sdb1:

/dev/sdb1: UUID="c3559307-795b-66db-9844-8e974c88a1cf" TYPE="ext4"

새로운 줄 /etc/fstab은 다음과 같습니다.

UUID=c3559307-795b-66db-9844-8e974c88a1cf          5.5T   58M  5.2T   1% /crimea

https://unix.stackexchange.com/a/137868/16704 는 UUID (liquidat, cc by-sa 3.0)를 사용하는 것이 가장 좋은 이유를 설명합니다.

UUID를 사용하면 운영 체제가 하드 디스크에 제공하는 실제 장치 번호와 독립적이라는 장점이 있습니다. 이미지 다른 하드 디스크를 시스템에 추가하면 어떤 이유로 OS에서 기존 디스크가 sdb대신으로 결정 sba됩니다. fstab이 장치 이름을 가리키면 부팅 프로세스가 망가졌습니다. 그러나 UUID의 경우에는 문제가 없습니다.


요약:

sudo lshw -C disk                # Checking the location of the new drive. It is /dev/sdb.     
sudo parted /dev/sdb mklabel gpt # Creating the GUID Partition Table (GPT)
sudo parted /dev/sdb print       # Checking that the GPT has been created
sudo parted /dev/sdb print unit MB print free # see 6001175MB size
sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MB # Creating partition label
sudo mkfs.ext4 /dev/sdb1         # Creating the partition
sudo nano /etc/fstab             # Add line `/dev/sdb1 /crimea ext4 defaults 0 0`
sudo mount -a # Remount /etc/fstab without rebooting

대신 종료 MB를 알려주는 os 는 경고를 피하는 sudo parted --align optimal /dev/sdb mkpart primary ext4 0% 6001175MB것이 좋습니다 ext4 0% 100%. 경고 : 결과 파티션이 최상의 성능을 위해 올바르게 정렬되지 않았습니다.
Pablo Marin-Garcia
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.