http://www.cxyzjd.com/article/jorondo/104504408
查看外接硬盘分区表 使用fdisk命令查看设备硬盘情况
1 2 3 4 5 -b<分区大小>:指定每个分区的大小; -l:列出指定的外围设备的分区表状况; -s<分区编号>:将指定的分区大小输出到标准输出上,单位为区块; -u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址; -v:显示版本信息
对外接硬盘进行分区 继续使用 fdisk+盘符 指令将外接硬盘设置为一个分区
在出现Command(m for help):键入n,选择分区类型(p)和分区个数(1),然后一直回车默认即可,最后输入w保存并退出。 操作成功后,使用fdisk -l查看发现新分区出现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 … … Disk /dev/sda: 62.9 GB, 62914560000 bytes … … Device Boot Start End Blocks Id System /dev/sda1 2048 122879999 61438976 83 Linux Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes … … Device Boot Start End Blocks Id System /dev/sdb1 63 976760030 488379984 c W95 FAT32 (LBA) Partition 1 does not start on physical sector boundary. /dev/sdb2 976760160 1953520063 488379952 7 HPFS/NTFS/exFAT
如果误操作了,按照下图删除分区即可
格式化分区 使用mkfs指令对分区进行格式化
1 sudo mkfs -t ext4 /dev/sda1
mkfs 用于在特定的分区上建立 linux 文件系统
1 2 3 4 5 6 7 8 使用格式:mkfs [-V] [-t fstype] [fs-options] filesys [blocks] 常用选项: device : 预备检查的硬盘分区,例如:/dev/sda1 -V : 详细显示模式 -t : 给定档案系统的型式,Linux 的预设值为 ext2 -c : 在制做档案系统前,检查该partition 是否有坏轨 -l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面 block : 给定 block 的大小
ext4 第四代拓展文件系统(Fourth Extended File System)
1 2 3 4 5 ext4文件系统由以下几个部分组成 1) Boot Block 引导块: 存储引导加载程序,帮助计算机在开机时加载Linux内核,但是在树莓派中,ext主分区并没有引导块,引导程序存储在FAT32的启动分区 2) Super Block 超级块: 记录文件组织的信息,包括文件系统的类型、inode数目、块的总数和空闲数量等 3) inodes 数据文件元信息: 存储文件大小、拥有者、拥有组、修改日期、文件对应数据块存储位置等,本身充当数据块的指针,可以使用*stat + 文件名*指令查询文件的inode编号 4) Data Block 数据块: 数据的真实存储
将分区挂载到指定目录 创建想要挂载的目录
使用mount将分区挂载到目录上
1 sudo mount /dev/sda1 /data/
如果挂载错了,使用umount卸载即可
操作之后使用df查看挂载情况
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 语法说明: mount [-hV] mount -a [-fFnrsvw] [-t vfstype] mount [-fnrsvw] [-o options [,...]] device | dir mount [-fnrsvw] [-t vfstype] [-o options] device dir 参数解释: -V:显示程序版本 -h:显示辅助讯息 -v:显示较讯息,通常和 -f 用来除错。 -a:将 /etc/fstab 中定义的所有档案系统挂上。 -F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。 -f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。 -n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。 -s-r:等于 -o ro -w:等于 -o rw -L:将含有特定标签的硬盘分割挂上。 -U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。 -t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。 -o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。 -o sync:在同步模式下执行。 -o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。 -o auto、-o noauto:打开/关闭自动挂上模式。 -o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async. -o dev、-o nodev-o exec、-o noexec允许执行档被执行。 -o suid、-o nosuid: 允许执行档在 root 权限下执行。 -o user、-o nouser:使用者可以执行 mount/umount 的动作。 -o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。 -o ro:用唯读模式挂上。 -o rw:用可读写模式挂上。 -o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统。
df 用于显示目前在Linux系统上的文件系统的磁盘使用情况统计
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 文件-a, --all 包含所有的具有 0 Blocks 的文件系统 文件--block-size={SIZE} 使用 {SIZE} 大小的 Blocks 文件-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...) 文件-H, --si 很像 -h, 但是用 1000 为单位而不是用 1024 文件-i, --inodes 列出 inode 资讯,不列出已使用 block 文件-k, --kilobytes 就像是 --block-size=1024 文件-l, --local 限制列出的文件结构 文件-m, --megabytes 就像 --block-size=1048576 文件--no-sync 取得资讯前不 sync (预设值) 文件-P, --portability 使用 POSIX 输出格式 文件--sync 在取得资讯前 sync 文件-t, --type=TYPE 限制列出文件系统的 TYPE 文件-T, --print-type 显示文件系统的形式 文件-x, --exclude-type=TYPE 限制列出文件系统不要显示 TYPE 文件-v (忽略) 文件--help 显示这个帮手并且离开 文件--version 输出版本资讯并且离开
将挂载动作设置为开机执行 查询分区对应的UUID
将硬盘信息添加到/etc/fstab 末尾
1 UUID=ea195de6-725c-4701-98c3-1fa6a44bc102 /data ext4 defaults 0 2
1 2 3 4 5 6 文件包含字段: <file system> <dir> <type> <options> <dump> <pass> <file systems> - 要挂载的分区或存储设备. <dir> - <file systems>的挂载位置。 <type> - 要挂载设备或是分区的文件系统类型,支持许多种不同的文件系统:ext2, ext3, ext4, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap 及 auto。 设置成auto类型,mount 命令会猜测使用的文件系统类型 <options> - 挂载时使用的参数
目前使用的挂载
1 sudo mount /dev/sda1 /home/pi/shared
后续直接使用
1 2 3 sudo fdisk -l sudo mount /dev/sda1 /home/pi/shared df -h
拔出硬盘
1 2 sudo umount /dev/sda1 sudo udisksctl power-off -b /dev/sda1