<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>archive</title><link>https://archive-w.netlify.app/devops/os/core/fs/</link><description>Recent content on archive</description><generator>Hugo</generator><language>zh-CN</language><atom:link href="https://archive-w.netlify.app/devops/os/core/fs/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://archive-w.netlify.app/devops/os/core/fs/ext2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://archive-w.netlify.app/devops/os/core/fs/ext2/</guid><description>&lt;ul>
&lt;li>
&lt;h2 id="introext2-fs">
 Intro(EXT2-FS)
 &lt;a class="anchor" href="#introext2-fs">#&lt;/a>
&lt;/h2>
&lt;p>&lt;img src="https://archive-w.netlify.app/.images/devops/os/core/fs/ext2/ext2-intro-01.png" alt="" width="100%">&lt;/p>
&lt;ul>
&lt;li>
&lt;h3 id="注意">
 注意
 &lt;a class="anchor" href="#%e6%b3%a8%e6%84%8f">#&lt;/a>
&lt;/h3>
&lt;div class="alert callout attention">&lt;p class="title">&lt;span class="icon icon icon-attention">&lt;/span> Caution &lt;/p>&lt;p> &lt;code>a).&lt;/code>: 上述的图例是模拟 1M 的 &lt;strong>ext2&lt;/strong> 文件系统，采用 block = 1024B ,inode size = 128B，进行划分的。
&lt;br>&lt;code>b).&lt;/code>: 转换成数值的时候是小端读取。比如 [80 00 00 00] ==int=&amp;gt; 0x00000080 = 0x80 = 128。
&lt;br>&lt;code>c).&lt;/code>: bitmap 采用的是 (MSB)10001001(LSB)，参考 


 &lt;a href="https://www.nongnu.org/ext2-doc/ext2.html#block-bitmap" rel="noopener" target="_blank">block-bitmap 中的部分描述&lt;/a>、以及 


 &lt;a href="https://en.wikipedia.org/wiki/Bit_numbering" rel="noopener" target="_blank">wiki&lt;/a>，比如 10000111，指的是第1，2，3，8个，不是1，6，7，8。&lt;/p>
&lt;/p>&lt;/div>
&lt;/li>
&lt;li>
&lt;h3 id="准备">
 准备
 &lt;a class="anchor" href="#%e5%87%86%e5%a4%87">#&lt;/a>
&lt;/h3>
&lt;p class="warn">在 Ubuntu-22.04 上准备两个文件系统，一个干净的 &lt;strong>fs1m&lt;/strong>，一个需要写入数据作对比 &lt;strong>fs1m-with-data&lt;/strong>。


 &lt;a href="https://github.com/xhsgg12302/knownledges/blob/f72899b6dc6cfddd1c44428ecfda7e9d5d819356/.images/devops/os/core/fs/ext2/fs1m" rel="noopener" target="_blank"> fs1m 备份下载&lt;/a>、


 &lt;a href="https://github.com/xhsgg12302/knownledges/blob/f72899b6dc6cfddd1c44428ecfda7e9d5d819356/.images/devops/os/core/fs/ext2/fs1m-with-data" rel="noopener" target="_blank">fs1m-with-data 备份下载&lt;/a>
&lt;br>创建一个1M的文件：&lt;code>dd if=/dev/zero of=fs1m count=256 bs=4K&lt;/code>
&lt;br>格式化文件系统：&lt;code>mke2fs -b 1024 -I 128 fs1m&lt;/code>
&lt;br>查看格式化后的信息：&lt;code>dumpe2fs fs1m&lt;/code>
&lt;br>&lt;br>复制 &lt;strong>fs1m&lt;/strong> 到 &lt;strong>fs1m-with-data&lt;/strong>
&lt;br>挂载：&lt;code>mount -o loop fs1m-with-data /mnt&lt;/code>
&lt;br>进入目录并写入数据：&lt;code>cd /mnt &amp;amp;&amp;amp; mkdir 12302 &amp;amp;&amp;amp; cd 12302 &amp;amp;&amp;amp; echo 'something' &amp;gt; Hello.java&lt;/code>
&lt;br>卸载：&lt;code>umount /mnt&lt;/code>
&lt;br>&lt;br>使用 


 
 

 
 
 
 
 
 
 
 
 
 &lt;a href='https://archive-w.netlify.app/devops/os/util/xxd/' rel="noopener" class="internal-link" data-src="https://archive-w.netlify.app/devops/os/util/xxd/">xxd&lt;/a> 查看十六进制信息：&lt;code>xxd -a -u -g1 -s 1024 -l 16 fs1m&lt;/code> //使用*代替连续00，大写字母输出，一个字节分割，offset=1024, len=16。&lt;/p></description></item></channel></rss>