問題描述
分區(例如fdisk
)用於從命令行分區額外硬盤驅動器的一些有用命令是什麽?由於大多數出版的指南都指向GParted和其他圖形工具,因此一些命令行序列的摘要會很有幫助。
TUNING – 保留空間,WRITE-BACK&訪問時間如果驅動器100%已滿,則如何刪除預留的磁盤空間(默認情況下)。由於我是’data’的輔助驅動器,因此移除保留區域可確保整個驅動器可供使用。
我也很好奇write-through與write-back和跳過更新訪問時間(在文件和目錄上)以提高性能。
最佳解決辦法
首要的是:
!警告 !!
這些命令是示例。刪除分區,修改和格式化文件係統會破壞數據和/或可能會阻止您的計算機啟動。進行備份。使用風險自負。試試你不介意丟失所有數據的機器。警告管理員。
要快速將驅動器設置為單個ext4分區……
-
查看”DISK”類的檢測到的設備
lshw -C disk
-
查看現有分區表
fdisk -l
-
編輯所選設備的分區表(在本例中為”sdx”)
fdisk /dev/sdx
在FDISK中,按:
-
d
…刪除當前分區 -
n
…創建一個新分區 -
p
…將其指定為PRIMARY分區 -
1
…將其設置為1ST主分區 -
w
…寫入更改。
-
-
顯示新分區表:
fdisk -l
-
將新分區的文件係統格式化為
ext4
類型mkfs -t ext4 /dev/sdx1
-
創建新驅動器將安裝到的新目錄:
mkdir /storage mount /dev/sdx1 /storage
TUNING
-
刪除保留塊(即設置為0%),因為此驅動器僅用於用戶數據
tune2fs -m 0 /dev/sdx1
-
由於服務器在UPS上,因此設置write-back,因此應用程序不會等待實際的磁盤寫入
tune2fs -o journal_data_writeback /dev/sdx1
-
使用
/etc/fstab
在啟動時掛載並設置write-back策略vi /etc/fstab
-
在
fstab
中查找(或添加)驅動器的相關行。 fstab中的參數由空格分隔,例如上麵描述的驅動器可能顯示為:/dev/sdx1 /storage ext4 relatime,errors=remount-ro 0 1
-
第一個參數標識分區(通過/dev /或長UUID);
-
第二個參數是分區將安裝到的路徑;
-
第三是文件係統類型;
-
第四個參數包含選項;
-
第五是
dump
備份計劃;和, -
第六個參數是pass-number(用於控製
fsck
順序)。
-
將選項(第4個參數)更改為:
noatime,nodiratime,data=writeback,barrier=0,nobh,errors=remount-ro
重新啟動以檢查一切進展順利。記住這些命令具有破壞性!有備份,小心!
次佳解決辦法
使用parted
下麵的說明是在parted
(在Ubuntu 14.04.4 LTS x64上測試)的新硬盤上創建新的ext4分區。與fdisk
不同,parted
支持GUID Partition Table (GPT),隨後可用於2TB以上的分區。
使用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
(如果您想知道我們使用--align optimal
的原因,請參閱https://unix.stackexchange.com/a/49274/16704)
使用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
中,您可以使用UUID
代替使用/dev/sdb1
,您可以使用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):
The advantage of using the UUID is that it is independent from the actual device number the operating system gives your hard disk. Image you add another hard disk to the system, and for some reason the OS decides that your old disk is now
sdb
instead ofsba
. Your boot process would be screwed up if fstab would point to the device name. However, in case of the UUIDs, it would be fine.
摘要:
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