问题描述
分区(例如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