实时 Linux 和 FAT32

实时 Linux 和 FAT32

我正在寻找一个可以在 FAT16/32/NTFS 分区(最好是在外部 USB 驱动器上)上运行(未压缩)的 Linux 发行版。我遇到过 Slax 和 Porteus 以及其他一些软件,但它们都使用模块化系统来包含其系统文件。如果这样的发行版不存在,我如何修改Linux发行版以在这样的分区上工作?安全性、权限和速度等因素在这里并不重要。

这样做的原因是我正在研究 xorg 和 Linux 桌面的内部结构实际上是如何工作的,下载文件并查看文档并没有给我我想要的东西。我使用 QEMU 作为一种能够启动 USB 驱动器并同时查看文件系统的方法。

答案1

单个块设备无法同时由 2 个或更多系统安装、读取或写入,因此使用 USB 驱动器作为共享存储不适合您的用途。您可能想要设置一个基于 NFS 的无盘系统,该系统允许在多个主机之间基于每个文件共享文件系统。

这是使用完整(但有点旧)Debian 桌面的预构建映像的迷你指南在这个网站上。我假设在 Debian 主机上工作,但我相信您可以轻松地将其适应其他发行版。

debian_wheezy_amd64_desktop.qcow2从上面的站点下载 QCOW2 图像。要提取图像,您需要qemu-nbd( apt-get install qemu-img):

# modprobe nbd
# qemu-nbd -c /dev/nbd0 /path/to/debian_wheezy_amd64_desktop.qcow2
# mount /dev/nbd0p1 /mnt -o ro
# mkdir -p /srv/nfsroot/wheezy
# rsync -avP /mnt/ /srv/nfsroot/wheezy/
# umount /mnt
# qemu-nbd -d /dev/nbd0

您需要/etc为无盘系统修复一些文件。首先,注释掉以UUID=in开头的行/srv/nfsroot/wheezy/etc/fstab,这些行引用硬盘分区:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
#UUID=613f176b-eca4-47e6-93a6-32653ca1982e /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
#UUID=24674a13-481b-4ff8-913f-9099661397bd none            swap    sw              0       0

其次,添加以下内容/srv/nfsroot/wheezy/etc/network/interfaces以使 NetworkManager 远离eth0

auto eth0
iface eth0 inet dhcp

在您的主机上设置 NFS 服务器:

# apt-get install nfs-kernel-server
# vi /etc/exports
# exportfs -ra

将以下行放入/etc/exports

/srv/nfsroot/wheezy *(rw,sync,no_subtree_check,no_root_squash,insecure)

现在使用内核和 initrd 映像以及 nfsroot 命令行启动 QEMU:

# qemu-system-x86_64 -enable-kvm -m 512 -kernel /srv/nfsroot/wheezy/boot/vmlinuz-3.2.0-4-amd64 -initrd /srv/nfsroot/wheezy/boot/initrd.img-3.2.0-4-amd64 -append "root=/dev/nfs nfsroot=192.168.1.2:/srv/nfsroot/wheezy ip=dhcp rw"

您需要在 中指定主机的 IPv4 地址nfsroot=。通过内置 NAT 从 QEMU 的内部网络访问它。

/srv/nfsroot/wheezy现在,您在 QEMU 窗口中看到了 GUI 登录屏幕,同时您可以查看/修改系统的任何文件。默认系统设置(例如用户/密码)描述于自述文件.txt

相关内容