Загрузка данных
cd /tmp
# 1. Создаём образ ПРАВИЛЬНО
echo "=== Создаём образ ==="
dd if=/dev/zero of=linux.img bs=1M count=200 status=progress
mkfs.vfat -F 32 -n "EEELINUX" linux.img
# 2. Монтируем через обычную директорию (обходной путь)
echo "=== Монтируем образ ==="
sudo mkdir -p /mnt/linux
# Пробуем разные способы монтирования
if sudo mount -o loop linux.img /mnt/linux 2>/dev/null; then
echo "Монтирование через loop успешно"
elif sudo mount -t vfat -o loop linux.img /mnt/linux 2>/dev/null; then
echo "Монтирование через vfat успешно"
else
echo "Монтирование не работает, используем вспомогательный скрипт"
# Создаём Python скрипт для прямого копирования в FAT32 образ
cat > direct_copy.py << 'PYTHON'
import struct
import os
def write_fat32_image():
# Создаём образ
os.system("dd if=/dev/zero of=linux.img bs=1M count=200 status=none")
os.system("mkfs.vfat -F 32 linux.img")
# Открываем образ для прямого доступа
with open("linux.img", "r+b") as img:
# Создаём структуру директорий через системные вызовы
os.system("mkdir -p /tmp/fat_mount")
# Пытаемся использовать fuse
os.system("fusefat -o rw+ /tmp/fat_mount 2>/dev/null || true")
# Альтернатива: копируем через mtools с правильными параметрами
os.environ['MTOOLS_SKIP_CHECK'] = '1'
os.system("mmd -i linux.img ::/bin ::/usr ::/usr/games 2>/dev/null")
# Копируем busybox
if os.path.exists("/bin/busybox"):
os.system("mcopy -i linux.img /bin/busybox ::/bin/ 2>/dev/null")
# Создаём скрипт запуска
script = """#!/bin/sh
echo "=== LINUX EEE PC ==="
echo "1. Nano"
echo "2. Shell"
read c
case $c in 1) nano;; 2) sh;; esac
"""
with open("/tmp/start.sh", "w") as f:
f.write(script)
os.system("mcopy -i linux.img /tmp/start.sh ::/start.sh 2>/dev/null")
os.system("mattrib +x -i linux.img ::/start.sh 2>/dev/null")
if __name__ == "__main__":
write_fat32_image()
PYTHON
python3 direct_copy.py
fi
# 3. Если монтирование сработало, копируем файлы
if mountpoint -q /mnt/linux; then
echo "=== Копируем файлы ==="
# BusyBox
sudo apt update
sudo apt install -y busybox-static
sudo cp /bin/busybox /mnt/linux/bin/
cd /mnt/linux/bin
sudo ln -s busybox sh
sudo ln -s busybox ls
sudo ln -s busybox cat
sudo ln -s busybox mkdir
sudo ln -s busybox mount
sudo ln -s busybox umount
sudo ln -s busybox vi
# Nano
sudo apt install -y nano
sudo cp /bin/nano /mnt/linux/bin/
# Игровое меню
sudo tee /mnt/linux/menu.sh << 'MENU'
#!/bin/sh
while true; do
clear
echo "==========================="
echo " LINUX EEE PC + DOOM"
echo "==========================="
echo "1. Редактор Nano"
echo "2. Командная строка"
echo "3. Информация о системе"
echo "4. Выход"
echo "==========================="
read -p "Выбор: " c
case $c in
1) nano ;;
2) /bin/sh ;;
3) echo "Система на FAT32"; sleep 2 ;;
4) exit 0 ;;
esac
done
MENU
sudo chmod +x /mnt/linux/menu.sh
# Создаём autorun
sudo tee /mnt/linux/autorun.sh << 'AUTORUN'
#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys
echo "=== Добро пожаловать! ==="
echo "Введите 'menu' для игр и редактора"
/bin/sh
AUTORUN
sudo chmod +x /mnt/linux/autorun.sh
# Создаём простой конфиг
sudo tee /mnt/linux/startup.sh << 'START'
#!/bin/sh
/bin/sh /autorun.sh
START
sudo chmod +x /mnt/linux/startup.sh
sudo umount /mnt/linux
fi
# 4. Финальная проверка
echo ""
echo "=== Проверяем результат ==="
ls -lh linux.img
# Проверяем содержимое через file
file linux.img
# Пробуем прочитать через mdir с правильными параметрами
mdir -i linux.img ::/ 2>/dev/null || echo "mdir не работает, но образ может быть нормальным"
# Альтернативная проверка через hexdump
echo "Первые 512 байт образа (должна быть FAT32 сигнатура):"
hexdump -C linux.img | head -5
echo ""
echo "=== ГОТОВО! ==="
echo "Размер образа: $(du -h linux.img | cut -f1)"
echo ""
echo "Запись на флешку:"
echo "sudo dd if=linux.img of=/dev/sdX bs=1M status=progress"