Как легко собрать свой собственный дистрибутив Linux? [дубликат]

Используйте опцию -q, чтобы указать sftp быть quiet, тем самым подавляя большую часть вывода, который вас не интересует:

echo "ls *.txt" | sftp -q user@host.example.com:/path

Вы все еще будете видеть строки для интерактивной подсказки, в которую вы передаете эхо, например, sftp> ls *. txt, но их можно отфильтровать с помощью grep -v:

echo "ls *.txt" | sftp -q user@host.example.com:/path | grep -v '^sftp>`

В качестве дополнения, вероятно, лучше использовать пакетный файл и передавать его с параметром -b в sftp, а не echoвставлять в него конвейер.

Если все, что вы действительно хотите сделать, это получить список файлов, это может быть лучше сделать с помощью ssh, чем с помощью sftp (который, в конце концов, является secure file transfer program):

ssh user@host.example.com ls -1 /path
44
16.08.2013, 18:16
1 ответ

Нужно знать:

  • В этом примере я использую TinyCoreLinux. Извините, если я отвечаю на действительно старую тему, но есть способ сделать это (, и я тоже предпочитаю делать это.)
  • Пожалуйста, оставляйте комментарии
  • Эти именованные пакеты Ubuntu -необходимы :qemu-system, qemu, qemu-efi, qemu-kvm, wgetи p7zip-full
  • .
  • Ваш дистрибутив будет в заархивированном файле, а не в формате ISO, но вы можете развернуть его на SD-карте -или USB-накопителе

Шаг -по -пошаговым инструкциям

  1. Загрузите корневую файловую систему TinyCoreLinux:

    wget -O tinycore.gz http://tinycorelinux.net/9.x/x86_64/release/distribution_files/rootfs64.gz
    
  2. Извлеките rootfs с помощью p7zip:

    7z x tinycore.gz
    mkdir -p linux/tinycore
    7z x tinycore -olinux/tinycore
    rm tinycore.gz tinycore
    
  3. Поставить линукс в образ(abcне нужно заменять)

    dd if=/dev/zero of=MyLinux.img bs=1M count=384 status=progress
    mkfs.vfat MyLinux.img
    sudo mount MyLinux.img /mnt
    cd linux/tinycore
    sudo cp * /mnt -rv
    cd..
    sudo umount /mnt
    
  4. Создать виртуальную машину со снимком(ВАЖНО!)Если вы не создадите виртуальную машину, удалить chroot может быть сложно. Там написано permission denied, а вам нужно recovery mode. Виртуальная машина может быть любым дистрибутивом на основе Debian. Это также может быть TinyCore. Вам просто нужно ядро ​​с датой от -до -.

    qemu-img create -f qcow2 customizer.qc2 16G
    sudo qemu-system-x86_64 -cdrom /path/to/iso/for/building.iso -hda customizer.qc2 \
    -boot menu=on -m 1536 --enable-kvm -hdb MyLinux.qc2
    

Теперь вам нужно запустить команды в виртуальной машине !

  1. Chroot в систему(xyzне требует замены)

    sudo mount /dev/sdb /mnt/xyz
    sudo chroot /mnt/xyz
    
  2. Установка пакетов, настройка файловой системы

    tce-load -wi packages.tcz to.tcz install.tcz 
    
  3. Выключить виртуальную машину, теперь запускать команды на хосте

    sudo poweroff
    
  4. Создать zip-файл ОС

    sudo mount MyLinux.img /mnt
    cd /mnt
    mkdir ~/linuximage
    sudo cp -r * -v ~/linuximage
    sudo chown $(whoami):$(whoami) ~/linuximage --recursive
    sudo chmod 777 ~/linuximage --recursive
    cd ~/linuximage
    zip -r ~/mylinuxdistro.zip.
    cd 
    
  5. Распространяйте и делитесь!

1
07.10.2020, 20:57

Теги

Похожие вопросы