让自编译 mkfs.ext3 工作

2024-01-05 00:38
文章标签 编译 工作 ext3 mkfs

本文主要是介绍让自编译 mkfs.ext3 工作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述(2011、12、20):编译好的mkfs.ext3不能使用,提示一下错误

root@OpenWrt:~# mkfs.ext3 /dev/ide/host0/bus0/target0/lun0/part1

mke2fs 1.38 (30-Jun-2005)
ext2fs_check_if_mount: No such file or directory while determining whether /dev/ide/host0/bus0/target0/lun0/part1 is mounted.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
4889248 inodes, 9767512 blocks
488375 blocks (5.00%) reserved for the super user
First data block=0
299 block groups
32768 blocks per group, 32768 fragments per group
16352 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624

Writing inode tables: done
Creating journal (32768 blocks): mkfs.ext3: No such file or directory
        while trying to create journal



mount -t ext3 /dev/ide/host0/bus0/target0/lun0/part1 /mnt

mount: Mounting /dev/ide/host0/bus0/target0/lun0/part1 on /mnt failed: Invalid argument

解决办法:

在U盘小系统中加入空文件mtab和mke2fs.conf


其他网络资料解决办法:

 "ln -s /proc/mounts /etc/mtab"


补充说明:

关于设备挂载的知识

mount 的挂在不是开机挂载,如果想要开机自动挂载,涉及到/etc/fstab

/etc/fstab中写了开机自动mount的项目。可以把自己想要开机mount的项添加到/etc/fstab中,利用mount -a来检查写入是否正确。

我们的 /etc/fstab 则加入了两项额外的功能,分别是备份指令 dump 的执行与否, 与是否开机进行 fsck 扫瞄磁盘

*************************************************

/etc/fstab 是开机时的设定档,不过,实际挂载的项目是记录到 /etc/mtab 与 /proc/mounts 这两个档案当中的。每次我们在更动 filesystem 的挂载时,也会同时更动这两个档案喔!

*************************************************

但是,万一发生您在 /etc/fstab 输入的数据错误,导致无法顺利开机成功,而进入单人维护模式当中,那时候的 / 可
是 read only 的状态,当然您就无法修改 /etc/fstab ,也无法更新 /etc/mtab 啰~那怎么办? 没关系,可以利用底下这一招:

-n 不更新/etc/mtab,-o提供额外的参数设定。这样 / 就能读写,自然能够更新档案的内容了。

----------------------------------------------------------------------------------------------------------------

3.除了mount外,还有特殊设备的挂载loop。

mount -t vfat -o loop ..........使用 loop 模式用来将一个档案当成硬盘分割挂上系统。

将 /tmp/image.iso 这个光碟的 image 档使用 loop 模式挂在 /mnt/cdrom之下。用这种方法可以将一般网络上可以找到的 Linux 光 碟 ISO 档在不烧录成光碟的情况下检视其内容。

#mount -o loop /tmp/image.iso /mnt/cdrom
镜像文件:
mount fileName mountPoint -o loop,fileName是镜像文件名(*.iso,*.img),其它的不用说了,跟上面一样。用例:如我有一个a.iso光盘镜像文件,mount a.iso a -o loop,这样进入目录a你就能浏览a.iso的内容了,*.img文件的用法一样

------------------------------------------------------------------------------------------------------------------

mount [-t vfstype] [-o options] device dir 
  其中: 
  1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 
  光盘或光盘镜像:iso9660 
  DOS fat16文件系统:msdos 
  Windows 9x fat32文件系统:vfat 
  Windows NT ntfs文件系统:ntfs 
  Mount Windows文件网络共享:smbfs 
  UNIX(LINUX) 文件网络共享:nfs 
  2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有: 
  loop:用来把一个文件当成硬盘分区挂接上系统 
  ro:采用只读方式挂接设备 
  rw:采用读写方式挂接设备 
  iocharset:指定访问文件系统所用字符集

挂接光盘镜像文件

  其实linux系统下制作和使用光盘镜像比Windows系统更方便,不必借用任何第三方软件包。 
  1、从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。 
   #cp /dev/cdrom /home/sunky/mydisk.iso 或 
   #dd if=/dev/cdrom of=/home/sunky/mydisk.iso 
   注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/sunky/mydisk.iso 
  2、将文件和目录制作成光盘镜像文件,执行下面的命令。 
   #mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir 
   注:这条命令将/home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文件/home/sunky/mydisk.iso,光盘卷标为:mydisk 
  3、光盘镜像文件的挂接(mount) 
   #mkdir /mnt/vcdrom 
   注:建立一个目录用来作挂接点(mount point) 
   #mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom 
   注:使用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的所有文件了


挂接移动硬盘

  对linux系统而言,USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。 
  [root at pldyrouter /]# fdisk -l 
  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes 
  255 heads, 63 sectors/track, 8924 cylinders 
  Units = cylinders of 16065 * 512 = 8225280 bytes 
  Device Boot Start End Blocks Id System 
  /dev/sda1 1 4 32098+ de Dell Utility 
  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS 
  /dev/sda3 2555 7904 42973875 83 Linux 
  /dev/sda4 7905 8924 Win95 Ext'd (LBA) 
  /dev/sda5 7905 8924 8193118+ 82 Linux swap 
  在这里可以清楚地看到系统有一块SCSI硬盘/dev/sda和它的四个磁盘分区/dev/sda1 -- /dev/sda4, /dev/sda5是分区/dev/sda4的逻辑分区。接好移动硬盘后,再用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况 
  [root at pldyrouter /]# fdisk -l 
  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes 
  255 heads, 63 sectors/track, 8924 cylinders 
  Units = cylinders of 16065 * 512 = 8225280 bytes 
  Device Boot Start End Blocks Id System 
  /dev/sda1 1 4 32098+ de Dell Utility 
  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS 
  /dev/sda3 2555 7904 42973875 83 Linux 
  /dev/sda4 7905 8924 Win95 Ext'd (LBA) 
  /dev/sda5 7905 8924 8193118+ 82 Linux swap 
  Disk /dev/sdc: 40.0 GB, 40007761920 bytes 
  255 heads, 63 sectors/track, 4864 cylinders 
  Units = cylinders of 16065 * 512 = 8225280 bytes 
  Device Boot Start End Blocks Id System 
  /dev/sdc1 1 510 4096543+ 7 HPFS/NTFS 
  /dev/sdc2 511 4864 Win95 Ext'd (LBA) 
  /dev/sdc5 511 4864 34973473+ b Win95 FAT32 
  大家应该可以发现多了一个SCSI硬盘/dev/sdc和它的两个磁盘分区/dev/sdc1?、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分区的逻辑分区。我们可以使用下面的命令挂接/dev/sdc1和/dev/sdc5。 
   #mkdir -p /mnt/usbhd1 
   #mkdir -p /mnt/usbhd2 
   注:建立目录用来作挂接点(mount point) 
   #mount -t ntfs /dev/sdc1 /mnt/usbhd1 
   #mount -t vfat /dev/sdc5 /mnt/usbhd2 
   注:对ntfs格式的磁盘分区应使用-t ntfs 参数,对fat32格式的磁盘分区应使用-t vfat参数。若汉字文件名显示为乱码或不显示,可以使用下面的命令格式。 
   #mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1 
   #mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2 
  linux系统下使用fdisk分区命令和mkfs文件系统创建命令可以将移动硬盘的分区制作成linux系统所特有的ext2、ext3格式。这样,在linux下使用就更方便了。使用下面的命令直接挂接即可。 
   #mount /dev/sdc1 /mnt/usbhd1


挂接U盘

  和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全一样。插入U盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。 
  [root at pldyrouter root]# fdisk -l 
  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes 
  255 heads, 63 sectors/track, 8924 cylinders 
  Units = cylinders of 16065 * 512 = 8225280 bytes 
  Device Boot Start End Blocks Id System 
  /dev/sda1 1 4 32098+ de Dell Utility 
  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS 
  /dev/sda3 2555 7904 42973875 83 Linux 
  /dev/sda4 7905 8924 Win95 Ext'd (LBA) 
  /dev/sda5 7905 8924 8193118+ 82 Linux swap 
  插入U盘后,再用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。 
  [root at pldyrouter root]# fdisk -l 
  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes 
  255 heads, 63 sectors/track, 8924 cylinders 
  Units = cylinders of 16065 * 512 = 8225280 bytes 
  Device Boot Start End Blocks Id System 
  /dev/sda1 1 4 32098+ de Dell Utility 
  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS 
  /dev/sda3 2555 7904 42973875 83 Linux 
  /dev/sda4 7905 8924 Win95 Ext'd (LBA) 
  /dev/sda5 7905 8924 8193118+ 82 Linux swap 
  Disk /dev/sdd: 131 MB, 131072000 bytes 
  9 heads, 32 sectors/track, 888 cylinders 
  Units = cylinders of 288 * 512 = 147456 bytes 
  Device Boot Start End Blocks Id System 
  /dev/sdd1 * 1 889 127983+ b Win95 FAT32 
  Partition 1 has different physical/logical endings: 
  phys=(1000, 8, 32) logical=(888, 7, 31) 
  系统多了一个SCSI硬盘/dev/sdd和一个磁盘分区/dev/sdd1,/dev/sdd1就是我们要挂接的U盘。 
  #mkdir -p /mnt/usb 
  注:建立一个目录用来作挂接点(mount point) 
  #mount -t vfat /dev/sdd1 /mnt/usb 
  注:现在可以通过/mnt/usb来访问U盘了, 若汉字文件名显示为乱码或不显示,可以使用下面的命令。 
  #mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb

在linux下如何mount nfs网络共享
类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文件系统),下面我们就以SUN Solaris2.8和REDHAT as server 3 为例简单介绍一下在linux下如何mount nfs网络共享。在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。 
  1、Solaris系统NFS服务端配置方法如下: 
(1)修改 /etc/dfs/dfstab, 增加共享目录 
   share -F nfs -o rw /export/home/sunky 
(2)启动nfs服务 
    # /etc/init.d/nfs.server start 
(3)NFS服务启动以后,也可以使用下面的命令增加新的共享 
    # share /export/home/sunky1 
    # share /export/home/sunky2 
注:/export/home/sunky和/export/home/sunky1是准备共享的目录




这篇关于让自编译 mkfs.ext3 工作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/571099

相关文章

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

Windows环境利用VS2022编译 libvpx 源码教程

libvpx libvpx 是一个开源的视频编码库,由 WebM 项目开发和维护,专门用于 VP8 和 VP9 视频编码格式的编解码处理。它支持高质量的视频压缩,广泛应用于视频会议、在线教育、视频直播服务等多种场景中。libvpx 的特点包括跨平台兼容性、硬件加速支持以及灵活的接口设计,使其可以轻松集成到各种应用程序中。 libvpx 的安装和配置过程相对简单,用户可以从官方网站下载源代码

未来工作趋势:零工小程序在共享经济中的作用

经济在不断发展的同时,科技也在飞速发展。零工经济作为一种新兴的工作模式,正在全球范围内迅速崛起。特别是在中国,随着数字经济的蓬勃发展和共享经济模式的深入推广,零工小程序在促进就业、提升资源利用效率方面显示出了巨大的潜力和价值。 一、零工经济的定义及现状 零工经济是指通过临时性、自由职业或项目制的工作形式,利用互联网平台快速匹配供需双方的新型经济模式。这种模式打破了传统全职工作的界限,为劳动

Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解。 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content=

Golang test编译使用

创建文件my_test.go package testsimport "testing"func TestMy(t *testing.T) {t.Log("TestMy")} 通常用法: $ go test -v -run TestMy my_test.go=== RUN TestMyTestMy: my_test.go:6: TestMy--- PASS: TestMy (0.

3.比 HTTP 更安全的 HTTPS(工作原理理解、非对称加密理解、证书理解)

所谓的协议 协议只是一种规则,你不按规则来就无法和目标方进行你的工作 协议说白了只是人定的规则,任何人都可以定协议 我们不需要太了解细节,这些制定和完善协议的人去做的,我们只需要知道协议的一个大概 HTTPS 协议 1、概述 HTTPS(Hypertext Transfer Protocol Secure)是一种安全的超文本传输协议,主要用于在客户端和服务器之间安全地传输数据

C++/《C/C++程序编译流程》

程序的基本流程如图:   1.预处理        预处理相当于根据预处理指令组装新的C/C++程序。经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的文件无异,只是内容上有所不同。 读取C/C++源程序,对其中的伪指令(以#开头的指令)进行处理将所有的“#define”删除,并且展开所有的宏定义处理所有的条件编译指令,如:“#if”、“