zoukankan      html  css  js  c++  java
  • mke2fs 制作ext2文件系统image

    方法1: 利用/dev/ram1:

    linux下有很多ram,我们用ram1,首先把ram1格式化成ext2文件系统
    [root@gucuiwen babylinux]#   sudo mkfs.ext2 -m0 /dev/ram1
    将ram1挂装到文件系统中:
    先建立一个挂装点:
    #mkdir /mnt/ram
    挂上ram1:
    # sudo mount /dev/ram1 /mnt/ram
    将先前做好的rootfs根文件系统拷贝到ram1上.
    # sudo cp -R dist/* /mnt/ram/
    拷贝好根文件系统后卸载ram1:
    # sudo umount /dev/ram1
    再用dd把这个ram1以映象方式取出来:
    [root@gucuiwen babylinux]# dd if=/dev/ram1 of=initrd.img
    读入了 8192+0 个块输出了 8192+0 个块
    把生成的initrd.img拷到一个地方备用
    gzip -v9 initrd.img        //压缩成initrd.img.gz
    方法2 : loop device和ram disk.

    loop device:
    创建fs image:
    dd if=/dev/zero of=image.file bs=1k count=100000
    losetup /dev/loop0 image.file
    mke2fs -c /dev/loop0 100000
    加载:
    mount -t ext2 /dev/loop0 /mnt
    umount /mnt
    losetup -d /dev/loop0
    或者
    mount -t ext2 -o loop image.file /mnt
    umount /mnt
    loop device将一个硬盘上的文件虚拟成块设备,大小取决于losetup
    时那个文件的大小,断电后内容不丢失;
    ram disk将一块内存虚拟成块设备,大小取决于ramdisk_size启动参数,
    断电后内容丢失。
    ramdisk: 根据grub启动参数ramdisk_size决定大小,默认4MB
    可以格式化ram disk并往里面写文件,然后dd出来做一个fs image,
    但这个image大小跟ramdisk一样大(疑问:好像可以比ramdisk的
    容量小,因为mke2fs可以指定block数目)。
    综上,做一个fs image的办法还是得losetup那个好些, 不用受内存
    大小的限制.

  • 相关阅读:
    layui学习--tab选项卡
    json过滤不需要的字段
    转载 http协议无状态中的 "状态" 到底指的是什么?
    正则表达式30分钟入门教程--转载
    Hadoop 部署之 HBase (四)
    Hadoop 部署之 Hadoop (三)
    Hadoop 部署之 ZooKeeper (二)
    Hadoop 部署之环境准备(一)
    Kubernetes 集群日志管理 Elasticsearch + fluentd(二十)
    Kubernetes 监控方案之 Prometheus Operator(十九)
  • 原文地址:https://www.cnblogs.com/xmphoenix/p/3963294.html
Copyright © 2011-2022 走看看