ddddfang's Blog.

disk ===> fdisk mount df

字数统计: 887阅读时长: 3 min
2019/01/23 Share

树莓派那里有个例子

1. 查看磁盘状态

  • df -h (这个命令显示系统已经挂载的各硬盘及他们所在的挂载点)
  • fdisk -l (这个命令可以将还没挂载的block也列出来,fdisk /dev/sdb 就可以针对u盘等设备格式化或分区了,常用的有p显示分区,d删除分区,n新建分区)

2. 给盘分区并格式化

若盘已经挂载则 sudo umount /dev/sdb (若是有多个分区就挨个umount /dev/sdb1 , umount /dev/sdb2)

  • 2.1. 分区(一个磁盘应该至少有一个分区,不然可能会出问题)

    1
    2
    3
    4
    5
    6
    sudo fdisk /dev/sdb
    p 打印分区表
    d 删除原有分区
    n 新建分区 2048-->2048*64(2048代表了扇区号偏移,一个扇区=512Bytes,这里给出64M Bytes. 此sd卡的 1个cluster = 2048 个 sector = 2048*512 Bytes = 1M Bytes,)
    n 新建分区 2048*64-->末尾
    w 保存退出
  • 2.2. 创建分区完毕后,/dev/sdb代表整个物理存储介质,/dev/sdb1则代表了该介质上的一个小分区。linux能自动将某个设备挂载起来前提是该设备上已经有文件系统了,因此我们下面开始格式化)

    1
    2
    3
    4
    sudo mkfs.vfat -F 32 /dev/sdb1
    sudo mkfs.ext4 /dev/sdb2
    sudo apt-get install ntfsprogs
    sudo mkfs.ntfs /dev/sdb3
  • 完成,umount

3. 挂载到本地

1
2
sudo mount /dev/sdb1 a
sudo mount /dev/sdb2 b

挂载某个文件系统的block设备到linux文件系统

1
2
3
4
5
6
7
8
mount -t vfstype -o options device dir
-t iso9660
-t msdos
-t vfat (fat32)
-t ntfs (ntfs)
-t smbfs (windows/linux共享文件系统)
-t nfs (linux网络文件系统)
-t ext3

  • -o loop 将一个文件作为硬盘分区挂载(loop 设备是一种伪设备(pseudo-device),或仿真设备,能使我们像访问块设备一样访问一个文件。一个 loop 设备必须要和一个文件进行连接,使用 losetup 完成,losetup /dev/loop0 vexpress.img,losetup -d /dev/loop0 则删除此连接)
  • -o ro 以只读方式挂载
  • -o rw 以读写方式挂载
  • -o iocharset 指定访问文件系统所用的字符集
    eg.
    1
    2
    3
    4
    mount -o remount,rw /system    
    mount -o loop a.img /mnt/floopy
    mount /dev/sda4 /mnt
    umount /media/root/xxx

例子1就是当vmware硬盘空间不够的时候,可以新增磁盘(默认设置即可)

1
2
3
4
5
6
进入系统
fdisk -l 查看新增的磁盘设备,将其格式化,
重新挂载到根文件系统某个目录下(比如/root/code_zx/tvos_zxsta2_1/)。
修改/etc/fstab,在末尾加一句:
/dev/sdb /root/code_zx ext4 defaults, 0 1 (将硬盘 /dev/sdb 自动mount到 /root/code_zx。如果还有/dev/sdc设备,也这么加,0 1 不用更改)这样这些外扩的block设备启动后就会被linux自动挂载到指定的地方了
4、df -h 查看系统已挂载的block设备

例子2:

1
2
3
4
5
dd if=/dev/zero of=vexpress.img bs=512 count=$((2*1024*100))      创建一个100M大小的映像文件作为虚拟磁盘
fdisk vexpress.img 给这个映像文件创建分区(使用n命令创建分区,各种下一步就行,q退出)(不创建分区貌似也可以啊)
losetup /dev/loop0 vexpress.img 连接 loop 设备 和 映像文件文件,后面我们便可以像访问块设备一样访问 vexpress.img 文件
mkfs.ext3 /dev/loop0 格式化 /dev/loop0 为 ext3(此时在ubuntu上理论上会自动挂载了,/media/root/xxxx,那其实就没必要再mount了)
mount -o loop vexpress.img abc/ 将vexpress.img挂载到abc目录上(mount -o loop 挂载的img文件应该包含一个文件系统才能成功)
CATALOG
  1. 1. 1. 查看磁盘状态
  2. 2. 2. 给盘分区并格式化
  3. 3. 3. 挂载到本地
  4. 4. 例子1就是当vmware硬盘空间不够的时候,可以新增磁盘(默认设置即可)
  5. 5. 例子2: