让自编译 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

相关文章

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四