磁盘
查看磁盘分区
lsblk
loop0
到 loop10
都是回环设备,它们被用来挂载 Snap 包。Snap 是一种应用程序打包格式,用于 Linux 系统,允许开发者将应用程序及其所有依赖打包在一起,确保应用程序在不同系统上都能正常运行。Snap 包可以自动更新,易于管理。其后面的挂载点和程序安装位置有关。
sda,sdb是硬盘,根据接口类型命名,"a~z"表示是第几块,超过26块我也不知道怎么命名。分区在后面加上数字。
挂载
在linux中,硬盘分区需要挂载到某一个位置下才能访问,该位置下的数据存储在对应的硬盘分区中。
首先要分区,使用fdisk进行分区。
root@ubuntu-1:/home/zcb# fdisk /dev/sdb
#dev是linux用于存放设备的路径。
欢迎使用 fdisk (util-linux 2.37.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x9acedec5 的新 DOS 磁盘标签。
命令(输入 m 获取帮助): m
帮助:
DOS (MBR)
a 开关 可启动 标志
b 编辑嵌套的 BSD 磁盘标签
c 开关 dos 兼容性标志
常规
d 删除分区
F 列出未分区的空闲区
l 列出已知分区类型
n 添加新分区
p 打印分区表
t 更改分区类型
v 检查分区表
i 打印某个分区的相关信息
杂项
m 打印此菜单
u 更改 显示/记录 单位
x 更多功能(仅限专业人员)
脚本
I 从 sfdisk 脚本文件加载磁盘布局
O 将磁盘布局转储为 sfdisk 脚本文件
保存并退出
w 将分区表写入磁盘并退出
q 退出而不保存更改
新建空磁盘标签
g 新建一份 GPT 分区表
G 新建一份空 GPT (IRIX) 分区表
o 新建一份的空 DOS 分区表
s 新建一份空 Sun 分区表
命令(输入 m 获取帮助):
fdisk非常好用,不需要教程,按m就可以根据自己要求一步步来。
分区后:
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part
在挂载前需要格式化分区,设置分区的磁盘文件系统类型。
使用mkfs,按两下tab可以显示选项
root@ubuntu-1:/dev# mkfs
mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.vfat
mkfs.bfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.ntfs
我这里使用的是ubuntu,默认是ext4,其他的linux系统一般也是默认ext和xfs文件系统。
root@ubuntu-1:/dev# mkfs.ext4 /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
创建含有 2621184 个块(每块 4k)和 655360 个 inode 的文件系统
文件系统 UUID:d0b097be-232a-4e80-b765-2995c290ebf9
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
正在分配组表: 完成
正在写入 inode表: 完成
创建日志(16384 个块): 完成
挂载可以使用mount 命令,mount [分区] [目录]
但是mount命令是临时挂载,在重新开机后会丢失,更改/etc/fstab文件可以永久挂载
配置文件里面使用的是UUID(唯一标识符)来指定硬盘,防止因为更换硬盘在主板上跟换插槽之类的问题导致设备名称改变。
使用blkid可以查看UUID
/dev/sdb1: UUID="d0b097be-232a-4e80-b765-2995c290ebf9" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="9acedec5-01"
填上对应信息可以参考已经挂载的硬盘填写
_SIZE="4096" TYPE="ext4" PARTUUID="9acedec5-01"
填上对应信息可以参考已经挂载的硬盘填写
这样就永久挂载了
其实工作量多了还是蛮麻烦的,使用一个脚本吧:
##!/bin/bash
#获取硬盘信息
echo "$(lsblk | grep -E "disk|part")"
read -p "选择需要分区的磁盘:" disk
fdisk /dev/$disk
read -p "选择需要格式化的分区:" port
read -p "输入文件系统类型" mkfs_type
read -p "输入挂载位置" mount_dir
mkfs.$mkfs_type /dev/$port
uuid_1=$(blkid | grep "$port" | awk -F'[ :]' '{print $3}' | tr -d '" PART')
mkdir -p $mount_dir
cat>>/etc/fstab<<EOF
$uuid_1 $mount_dir $mkfs_type defaults 0 1
EOF
mount -a
lsblk