(转)jslinux的硬盘挂载

本文介绍了一年前引起热议的 jsLinux 的最新进展,包括如何获取代码和磁盘映像,以及如何替换其中的内容。目前 jsLinux 已经能够模拟 IDE 驱动器,并且不再受限于 4MB RAM 的限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转http://blog.youkuaiyun.com/robertsong2004/article/details/38820763

译至:http://lovepeers.org/2012/10/22/jslinux/

大约一年之前成为热门话题的jslinux,这次重新试着跑一下。

实际上变化并不显著,现在可以模拟IDE驱动器,“只能使用4MB以下的RAM”的限制也消失了。

事实上,现在jslinux的磁盘映像高达57MB,GCC 4.3.5也在其中!


因为还是有大小的限制,C库是用的uClibc,命令是使用BusyBox,但也可能替换为GNU的C库和GNU coreutils。 真在在实际中的应用值得期望!(先不谈能用在什么场景下...)

首先记录一下如何获取代码和磁盘映像,并替换里面的内容。

获取代码和磁盘映像
磁盘映像是按64KB的大小进行分割并把它以hdaXXXXXXXXX.bin的名字命名,这些文件都需要。因为一个一个的下载比较花时间,通过在后台执行wget命令来并行下载这些文件。

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
<pre name="code" class="plain">#!/bin/bash
host=http://bellard.org/jslinux/

wget $host/cpux86-ta.js
wget $host/cpux86.js
wget $host/jslinux.js
wget $host/term.js
wget $host/utils.js

wget $host/linuxstart.bin
wget $host/vmlinux-2.6.20.bin

i=0
while [ $i -le 999 ]; do
hda=$(printf 'hda%09d.bin' $i)
if [ ! -f $hda ]; then
wget $host/$hda &
fi

i=$(( $i + 1 ))
done
编辑磁盘映像

首先把分割的磁盘映像文件整合生成一个文件。

cat hda000000*.bin > hda.bin
生成的hda.bin通过loopback mount挂载。

sudo mount -t ext2 -o loop hda.bin /mnt
这里磁盘映像的内容被挂载到/mnt上,接下来就可以修改/mnt下的文件了。

完成后,卸载该磁盘映像

sudo umount /mnt
再次将hda.bin分离成64KB的块。

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
#!/bin/bash
rm hda000000.bin

split -a 9 -d -b 65536 hda.bin hda
for f in hda000000*; do
mv $f $f.bin
done

这样就可以了。 顺便说一句,我将原来的文件替换成GNU coreutils cat命令和glibc,并确认可以正常工作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值