幽兰代码本除了有128GB的EMMC闪存外,还有512G的SSD,使用M.2接口与RK3588连接。

对于第一批幽兰客户,发货时的SSD文件系统格式是NTFS,与Linux下流行的EXT文件系统之间无法建立文件连接。建议大家按下面的步骤重新格式化。

  1. 首先,如果你已经在SSD上存放了文件,那么请执行如下命令做好备份。因为后面要重新格式化SSD。

    mkdir ~/ssdbak
    cp /media/geduer/SSD ~/ssdbak -R
  2. 接下来,先执行sudo su命令切换到管理员用户,然后执行fdisk -l列出系统里的所有外存。

    root@ulan:/home/geduer# fdisk -l
    Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disk /dev/loop0: 114.72 GiB, 123178302976 bytes, 240582623 sectors
    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/mtdblock0: 8 MiB, 8388608 bytes, 16384 sectors
    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/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
    Disk model: S3000
    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: 0x00000000
    Disk /dev/mmcblk0: 115.23 GiB, 123731968000 bytes, 241664000 sectors
    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: 5263BA7E-943A-614F-AF7F-1E5568908016
    Device           Start       End   Sectors   Size Type
    /dev/mmcblk0p1   16384     32767     16384     8M Microsoft basic data
    /dev/mmcblk0p2   32768   1081343   1048576   512M Microsoft basic data
    /dev/mmcblk0p3 1081344 241663966 240582623 114.7G Microsoft basic data

    上面显示的/dev/nvme0n1: 476.94 GiB就是幽兰的SSD。

  3. 再次提醒,如果你已经在SSD上存放了文件,那么请依照开头说的步骤做好备份。因为现在就要重新格式化SSD了。

    fdisk /dev/nvme0n1

    接下来按照fdisk的提示,参考下图,输入n、p、1、回车、回车、w新建一个主分区,大小是整个SSD硬盘,w命令是保存退出。

    如果你希望创建多个分区,那么可以使用图形化的分区工具gparted,基本步骤如下:
    1)执行apt install gparted安装gparted应用
    2)执行gparted,启动图形界面
    然后就可以在图形界面上进行操作了。操作时注意选择SSD对应的nvme0n1磁盘。
    gparted_on_yourland

  4. 下一步是格式化新建的分区,也就是初始化文件系统。再次提醒,如果你有数据在SSD上,那么赶紧备份,下一步执行好,就来不及了。确认备份无误后,执行如下命令进行格式化:

    mkfs.ext4 /dev/nvme0n1

    发出命令后,幽兰以闪电般的速度很快就把500G的外存格式化好了。

  5. 执行如下命令为SSD设置一个卷标:

    e2label /dev/nvme0n1 ylssd
  6. 执行如下命令可以观察SSD的ext4文件系统信息:

    root@ulan:/media/geduer# dumpe2fs -h /dev/nvme0n1
    dumpe2fs 1.47.0 (5-Feb-2023)
    Filesystem volume name:   ylssd
    Last mounted on:          <not available>
    Filesystem UUID:          dfcc9f34-7b74-45a1-a871-b678e2620870
    Filesystem magic number:  0xEF53
    Filesystem revision #:    1 (dynamic)
    Filesystem features:      has_journal ext_attr resize_inode dir_index orphan_file filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
    Filesystem flags:         unsigned_directory_hash
    Default mount options:    user_xattr acl
    Filesystem state:         clean
    Errors behavior:          Continue
    Filesystem OS type:       Linux
    Inode count:              31260672
    Block count:              125026902
    Reserved block count:     6251345
    Overhead clusters:        2243098
    Free blocks:              122783285
    Free inodes:              31260660
    First block:              0
    Block size:               4096
    Fragment size:            4096
    Group descriptor size:    64
    Reserved GDT blocks:      1024
    Blocks per group:         32768
    Fragments per group:      32768
    Inodes per group:         8192
    Inode blocks per group:   512
    Flex block group size:    16
    Filesystem created:       Wed May 10 16:32:18 2023
    Last mount time:          n/a
    Last write time:          Wed May 10 16:40:32 2023
    Mount count:              0
    Maximum mount count:      -1
    Last checked:             Wed May 10 16:32:18 2023
    Check interval:           0 (<none>)
    Lifetime writes:          7168 kB
    Reserved blocks uid:      0 (user root)
    Reserved blocks gid:      0 (group root)
    First inode:              11
    Inode size:               256
    Required extra isize:     32
    Desired extra isize:      32
    Journal inode:            8
    Default directory hash:   half_md4
    Directory Hash Seed:      ee84274a-529b-4f26-abfa-2758b202879a
    Journal backup:           inode blocks
    Checksum type:            crc32c
    Checksum:                 0x8616dc61
    Orphan file inode:        12
    Journal features:         (none)
    Total journal size:       1024M
    Total journal blocks:     262144
    Max transaction length:   262144
    Fast commit length:       0
    Journal sequence:         0x00000001
    Journal start:            0
  7. 接下来,执行如下命令,为SSD建立一个简洁的路径,并将新格式化的分区挂接到这个路径:

    mkdir /gewu
    sudo chmod  ugo+rwx /gewu //目的是可以不在管理员权限下操作ssd盘,方便创建和删除文件
    mount /dev/nvme0n1 /gewu
  8. 现在就可以通过如下命令使用SSD的空间了。

    cd /gewu
    echo a > a.txt
    stat a

    最后的stat命令是用来观察文件的存储信息,显示如下:

    root@ulan:/gewu# stat a.txt
    File: a.txt
    Size: 2               Blocks: 8          IO Block: 4096   regular file
    Device: 7,0     Inode: 5898242     Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2023-05-10 16:43:14.643961602 +0800
    Modify: 2023-05-10 16:43:14.643961602 +0800
    Change: 2023-05-10 16:43:14.643961602 +0800
    Birth: 2023-05-10 16:43:14.643961602 +0800
  9. 为了避免每次都需要手工挂接,下面几条命令是让系统自动挂接。

    blkid /dev/nvme0n1
    root@ulan:/gewu# blkid /dev/nvme0n1
    /dev/nvme0n1: LABEL="ylssd" UUID="dfcc9f34-7b74-45a1-a871-b678e2620870" BLOCK_SIZE="4096" TYPE="ext4"

    记住上面的UUID,然后打开/etc/fstab ,加入下面一行:

    UUID=dfcc9f34-7b74-45a1-a871-b678e2620870 /gewu ext4    defaults

  10. 接下来重启幽兰,重启后,执行df进行检查,如果看到/dev/nvme0n1被挂接到/gewu,那么就是成功了。

作者:沈根成  创建时间:2023-05-11 09:32
最后编辑:Zhang Yinkui  更新时间:2024-05-06 17:42