1、提供OpenHarmony优雅实用的小工具
2、手把手适配riscv + qemu + linux的三方库移植
3、未来计划riscv + qemu + ohos的三方库移植 + 小程序开发
4、一切拥抱开源,拥抱国产化
一、小于2T磁盘挂载方式
1.1 安装磁盘到电脑后启动系统
1.2 查找未分区的磁盘
- 打开终端输入sudo fdisk -l查找到没有分区的磁盘
- 已经分区的磁盘会有对应的Device Start End Sectors Size Type信息,而未分区的磁盘没有对应的信息,通过查看当前/dev/nvme0n1是新增加的未分区磁盘
javascript
$ sudo fdisk -l
[sudo] password for wen_fei:
Disk /dev/nvme0n1: 1.84 TiB, 2000398934016 bytes, 3907029168 sectors # 未分区的磁盘
Disk model: Samsung SSD 980 PRO 2TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/nvme1n1: 1.84 TiB, 2000398934016 bytes, 3907029168 sectors # 已分区的磁盘
Disk model: Samsung SSD 980 PRO 2TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 6F0C9477-25AA-45D6-A027-C7186A2C5918
Device Start End Sectors Size Type
/dev/nvme1n1p1 2048 5859327 5857280 2.8G EFI System
/dev/nvme1n1p2 5859328 162109439 156250112 74.5G Linux filesystem
/dev/nvme1n1p3 162109440 220702719 58593280 28G Linux filesystem
/dev/nvme1n1p4 220702720 298827775 78125056 37.3G Linux filesystem
/dev/nvme1n1p5 298827776 376952831 78125056 37.3G Linux filesystem
/dev/nvme1n1p6 376952832 416014335 39061504 18.6G Linux filesystem
/dev/nvme1n1p7 416014336 3907028991 3491014656 1.6T Linux filesystem
Disk /dev/nvme2n1: 1.84 TiB, 2000398934016 bytes, 3907029168 sectors # 已分区的磁盘
Disk model: Samsung SSD 980 PRO 2TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B6155B74-845D-4234-B637-4308B3F0C56D
Device Start End Sectors Size Type
/dev/nvme2n1p1 2048 3907028991 3907026944 1.8T Linux filesystem
1.3 磁盘分区
- 对未分区的磁盘执行命令sudo fdisk /dev/xxx
- 根据提示输入m查看指令信息
- 根据提示输入n开始创建分区
- 根据提示输入p表示创建主分区,或者输入区e表示创建逻辑分区:一块硬盘最多只能创建4个主分区,逻辑分区可以创建若干个
- 根据提示输入x表示创建x个分区说明: 我们挂载磁盘一般只创建一个分区即可,直接输入1即可
- 根据提示直接回车设置分区开始位置是从第2048个扇区开始: 由于EFI的兴起,要给EFI代码留磁盘最开始的1M空间,即2048521/(10241024)=1M,因此分区默认第2048个扇区开始
- 根据提示直接回车设置分区结束位置为磁盘末尾
- 根据提示输入w保存分区设置
bash
$ sudo fdisk /dev/nvme0n1
Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x20e2fdf1.
Command (m for help): m
Help:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-3907029167, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-3907029167, default 3907029167):
Created a new partition 1 of type 'Linux' and of size 1.8 TiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
1.4 格式化分区
- 输入命令sudo mkfs -t ext4 /dev/xxx进行格式化磁盘
- 记住生成磁盘的UUID为挂载磁盘使用
bash
$ sudo mkfs -t ext4 /dev/nvme0n1
mke2fs 1.45.5 (07-Jan-2020)
Found a dos partition table in /dev/nvme0n1
Proceed anyway? (y,N) y
Discarding device blocks: done
Creating filesystem with 488378646 4k blocks and 122101760 inodes
Filesystem UUID: 330fdef4-df72-47ab-afa0-0ff08ae4999f
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
1.5 设置开机自动挂载
- 打开文件/etc/fstab添加新分区挂载到/data目录
bash
$ sudo vim /etc/fstab
# /datb was on /dev/nvme3n1p1 during installation
UUID=330fdef4-df72-47ab-afa0-0ff08ae4999f /data ext4 defaults 0 2
1.6 重启系统
-
系统重启后查看已经有目录/data表示挂载新磁盘成功
1.7 删除分区
-
卸载分区:使用sudo umount xxx
-
对已分区的磁盘执行命令sudo fdisk /dev/xxx
-
根据提示输入m查看指令信息
-
根据提示输入d开始删除最后一个分区,如果想删除更多的分区,则不停的输入d即可
-
根据提示输入p表示打印分区表
-
根据提示输入w表示保存分区设置
-
删除/etc/fstab中原UUID挂载的磁盘
bash
$ sudo fdisk /dev/nvme0n1
Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): m
Help:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
Command (m for help): p
Disk /dev/nvme0n1: 1.84 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: Samsung SSD 980 PRO 2TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcd706ecb
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
二、大于2T磁盘挂载方式
2.1 安装磁盘到电脑后启动系统
2.2 查找未分区的磁盘
- 打开终端输入sudo fdisk -l查找到没有分区的磁盘
- 已经分区的磁盘会有对应的Device Start End Sectors Size Type信息,而未分区的磁盘没有对应的信息,通过查看当前/dev/nvme0n1是新增加的未分区磁盘
bash
$ sudo fdisk -l
[sudo] password for wen_fei:
Disk /dev/nvme0n1: 3.74 TiB, 4096805658624 bytes, 8001573552 sectors
Disk model: Lexar SSD ARES 4TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/nvme1n1: 1.84 TiB, 2000398934016 bytes, 3907029168 sectors # 已分区的磁盘
Disk model: Samsung SSD 980 PRO 2TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 6F0C9477-25AA-45D6-A027-C7186A2C5918
Device Start End Sectors Size Type
/dev/nvme1n1p1 2048 5859327 5857280 2.8G EFI System
/dev/nvme1n1p2 5859328 162109439 156250112 74.5G Linux filesystem
/dev/nvme1n1p3 162109440 220702719 58593280 28G Linux filesystem
/dev/nvme1n1p4 220702720 298827775 78125056 37.3G Linux filesystem
/dev/nvme1n1p5 298827776 376952831 78125056 37.3G Linux filesystem
/dev/nvme1n1p6 376952832 416014335 39061504 18.6G Linux filesystem
/dev/nvme1n1p7 416014336 3907028991 3491014656 1.6T Linux filesystem
Disk /dev/nvme2n1: 1.84 TiB, 2000398934016 bytes, 3907029168 sectors # 已分区的磁盘
Disk model: Samsung SSD 980 PRO 2TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B6155B74-845D-4234-B637-4308B3F0C56D
Device Start End Sectors Size Type
/dev/nvme2n1p1 2048 3907028991 3907026944 1.8T Linux filesystem
2.3 磁盘分区
- 对未分区的磁盘执行命令sudo parted /dev/xxx
- 根据提示输入mklabel gpt建立GPT分区
- 根据提示输入Yes开始创建分区
- 根据提示输入mkpart primary ext4 0% 100%创建主分区
- 根据提示输入print查看详细信息
- 根据提示输入quit退出
bash
$ sudo parted /dev/nvme0n1
GNU Parted 3.3
Using /dev/nvme0n1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
Warning: The existing disk label on /dev/nvme0n1 will be destroyed and all data on this disk will be lost. Do you want to
continue?
Yes/No? Yes
(parted) mkpart primary ext4 0% 100%
(parted) print
Model: Lexar SSD ARES 4TB (nvme)
Disk /dev/nvme0n1: 4097GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 4097GB 4097GB ext4 primary
(parted) quit
Information: You may need to update /etc/fstab.
2.4 格式化分区
- 输入命令sudo mkfs -t ext4 /dev/xxx进行格式化磁盘
- 记住生成磁盘的UUID为挂载磁盘使用
bash
$ sudo mkfs -t ext4 /dev/nvme0n1
mke2fs 1.45.5 (07-Jan-2020)
/dev/nvme0n1 contains a ext4 file system
created on Wed Jul 3 17:44:09 2024
Proceed anyway? (y,N) y
Discarding device blocks: done
Creating filesystem with 1000196694 4k blocks and 250052608 inodes
Filesystem UUID: 7918bc9f-458c-442f-b586-53fa657b4ad2
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
2.5 设置开机自动挂载
- 打开文件/etc/fstab添加新分区挂载到/data目录
bash
$ sudo vim /etc/fstab
# /datb was on /dev/nvme3n1p1 during installation
UUID=7918bc9f-458c-442f-b586-53fa657b4ad2 /data ext4 defaults 0 2
2.6 重启系统
- 系统重启后查看已经有目录/data表示挂载新磁盘成功