CPU
PCI 设备
块设备信息
1 2 3 4 5 6 7 $ lsblk # 查看挂载的节点和对应的分区 UUID $ ls -lha /dev/disk/by-uuid# 查看块设备的信息,包含 UUID $ blkid /dev/sda1
参数
硬盘
初始化步骤
创建分区表
创建分区
格式化分区
挂载分区
配置启动时挂载
列出设备及分区信息
1 2 3 $ parted -l # 或 $ fdisk -l
初始化设备
格式化
1 $ mkfs [options] [-t type fs-options] device [size]
示例
1 $ sudo mkfs -t ext4 /dev/sda
类型
使用中无法格式化
1 2 3 $ dmsetup status $ dmsetup remove <> $ dmsetup remove_all
创建主分区
打开存储盘
1 2 3 4 5 6 $ sudo parted -a optimal /dev/sdaGNU Parted 3.1 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) select /dev/sdb # 切换至 /dev/sdb Using /dev/sdb
创建分区表
1 (parted) mklabel [partition_table_type]
分区表类型
aix
amiga
bsd
dvh
gpt
mac
ms-dos
pc98
sun
loop
示例
检查
创建分区
1 2 3 4 5 6 7 # 主分区 (parted) print free (parted) mkpart primary [start] [end] # 主分区模式 # lvm 分区 (parted) unit s (parted) mkpart LVM ext4 0% 100%
示例
1 2 (parted) mkpart primary 0.00B 100GB # 按容量 (parted) mkpart primary 0 100% # 按比例
格式化分区
1 $ sudo mkfs.ext4 /dev/sda1
自动挂载分区
1 2 $ sudo mkdir data$ sudo mount -t auto /dev/sda1 /data
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 $ sudo parted /dev/sdaGNU Parted 3.1 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Model: ATA Hitachi HUS72404 (scsi) Disk /dev/sda: 4001GB Sector size (logical/physical): 512B/4096B Partition Table: loop Disk Flags: Number Start End Size File system Flags 1 0.00B 4001GB 4001GB ext4 (parted) mklabel gpt Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? yes (parted) print Model: ATA Hitachi HUS72404 (scsi) Disk /dev/sda: 4001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags (parted) mkpart primary 4096s 100% # 创建分区表 (parted) print Model: ATA Hitachi HUS72404 (scsi) Disk /dev/sda: 4001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 2097kB 4001GB 4001GB primary $ sudo mkfs.ext4 /dev/sda1... $ sudo mount -t auto /dev/sda1 /data$ df -hFilesystem Size Used Avail Use% Mounted on devtmpfs 32G 0 32G 0% /dev tmpfs 32G 0 32G 0% /dev/shm tmpfs 32G 2.0G 30G 7% /run tmpfs 32G 0 32G 0% /sys/fs/cgroup /dev/mapper/centos-root 50G 4.2G 46G 9% / /dev/nvme0n1p2 1014M 233M 782M 23% /boot /dev/nvme0n1p1 200M 12M 189M 6% /boot/efi /dev/mapper/centos-home 395G 332M 394G 1% /home tmpfs 6.3G 12K 6.3G 1% /run/user/42 tmpfs 6.3G 0 6.3G 0% /run/user/1000 /dev/sda1 3.6T 89M 3.4T 1% /data
注 创建分区表时 4096s
的取值,可以参考 这里 和 这里 。
脚本创建分区 & 格式化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # 分区 parted --script /dev/vdb \ mklabel gpt \ mkpart primary 4096s 100% # 格式化 mkfs.ext4 /dev/vdb1 # 挂载 mount -t auto /dev/vdb1 /data # 写入 /etc/fstab, root 用户运行 echo -e "UUID=$(blkid -o value -s UUID /dev/vdb1)\t/data\text4\tdefaults\t0 0" >> /etc/fstab echo -e "UUID=$(blkid -o value -s UUID /dev/sdb1)\t/downloads\text4\tdefaults\t0 0" >> /etc/fstab
创建 LVM 分区
概念
物理卷(Physical Volumes)
卷组(Volume Groups)
逻辑卷(Logical Volumes)
查看信息
查看所有 LVM 可以管理的块设备
查看物理卷信息
1 2 3 4 5 6 7 8 9 sudo lvmdiskscan -l # 或 sudo pvscan # 如果需要展示更多信息 sudo pvs # 或 sudo pvdisplay sudo pvdisplay -m # 查看映射到每个卷的逻辑扩展名
查看 Volumn Group 的信息
查看 Logical Volumn 信息
1 2 3 sudo lvscan # 或 sudo lvs
创建 LVM 卷
从 Raw Storage Device 创建 Physical Volumes
1 2 # 列出所有可用的设备 sudo lvmdiskscan
如果没有列出目标设备,可能是设备使用了不支持的分区表。重新设置设备的分区表为兼容的 BIOS 表。
1 2 3 sudo parted /dev/sda (parted) mktable msdos (parted) quit
标记存储设备为 LVM 物理卷。
1 2 3 sudo pvcreate /dev/sda # 多个设备 sudo pvcreate /dev/sda /dev/sdb
从 Physical Volumes 创建 Volume Group
1 2 3 sudo vgcreate lvm-storage /dev/sda # 多个设备 sudo vgcreate lvm-storage /dev/sda /dev/sdb
从 Volume Group 创建 Logical Volume
1 2 3 4 5 # 创建指定 size sudo lvcreate -L 500G -n lvm-storage-hadoop lvm-storage # 使用所有剩余空间 sudo lvcreate -l 100%FREE -n lvm-storage-hadoop lvm-storage
格式化分区
1 sudo mkfs.ext4 /dev/<lvm-vg-name>/<lvm-lv-name>
挂载 LV
1 sudo mount /dev/<lvm-vg-name>/<lvm-lv-name> /path/to/destination
自动挂载
1 2 3 4 5 6 7 # 查看 logical volume 的 uuid sudo blkid /dev/mapper/<lvm-lv-name>: UUID="0192e4be-db57-4dc9-9f07-cb7bd673811b" BLOCK_SIZE="4096" TYPE="ext4" # 添加自动挂载 sudo vim /etc/fstab # 新增如下内容 UUID=0192e4be-db57-4dc9-9f07-cb7bd673811b /storage/hadoop ext4 defaults 0 2
更多操作
向 Volume Group 添加 Physical Volume
1 sudo vgextend <volume-group-name> /dev/sdb
增加 Logical Volume 的空间
Solution 1
1 2 3 4 sudo lvresize -L +5G --resizefs <lvm-vg-name>/<lvm-lv-name> # 调整 lvm size sudo lvresize -l +100%FREE /dev/<lvm-vg-name>/<lvm-lv-name> # 使用所有剩余空间 # sudo lvdisplay; 找到 Logical Volume 的 LV Pathsudo resize2fs <lv-path> # 生效
注意: lvresize 之后通过 df -h 查看空间,并不会生效,需要再运行 resize2fs
Solution 2
为 Ubuntu 的 lv 分区扩容
1 2 3 $ sudo vgdisplay $ sudo lvdisplay $ sudo lvextend -l +100%FREE -r /dev/ubuntu-vg/ubuntu-lv
删除 Logical Volume
1 2 sudo umount /dev/<lvm-vg-name>/<lvm-lv-name> sudo lvremove <lvm-vg-name>/<lvm-lv-name>
删除 Volume Group
1 2 sudo umount /dev/<lvm-vg-name>/* # unmount vg 下所有 lv sudo vgremove <lvm-vg-name>
删除 Physical Volume
查看接口
1 2 sudo dmidecode --type connector # 可以查看 USB、SATA、M.2 接口
参考