www.debian.org/CD/live/
С сайта SE (в стандартной версии):
wget https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-10.0.0-amd64-standard.iso
Из автоматического выбора зеркала (mate live):
wget http://debian-cd.debian.net/debian-cd/10.0.0-live/amd64/iso-hybrid/debian-live-10.0.0-amd64-mate.iso
Затем контрольная сумма загружает файл сhttps://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/SHA256SUMS...
Файловая система ISO в порядке для чтения -только , но есть небольшойобходной путь:мы могли бы заменить несущественные параметры загрузки на persistence
таким образом.
вы можете изменить их, используя sed
для замены строк в двоичном формате.
LANG=C sed 's/splash quiet/persistence /;s/quiet splash/persistence /' \
/tmp/debian-live-10.0.0-amd64-mate-persist.iso
Это создаст измененную копию вашего живого двоичного файла путем строгой замены splash quiet
или quiet splash
на persistence
везде. Хорошо, это будет работать, только если команда загрузки grub содержит эти два слова вместе.
Но будьте осторожны, чтобы не пропустить пробел после настойчивости:
"splash quiet" -> 12 characters
"persistence " -> 12 characters
Или ваш бинарный файл будет сломан.
dd if=debian-live-10.0.0-amd64-standard-persist.iso of=/dev/sdX
Затем добавьте свой третий раздел для сохранения:
fdisk /dev/sdX
n # new partition
p # primary
# default: 3
# default: next free sector
# default: last addressable sector
w # write and quit
Это можно было запустить без взаимодействия:
fdisk /dev/sdX <<<$'n\np\n\n\n\nw'
Форматирование и подготовка сохранения с помощьюunion
:
mkfs.ext4 -L persistence /dev/sdX3
mount /dev/sdX3 /mnt
echo '/ union' >/mnt/persistence.conf
sync
umount /mnt
Тогда извлеките и попробуйте!
Если вы используете официальный немодифицированный образ, для использования сохраняемости вам необходимо прервать выбор загрузки:
После отображения экрана меню выберите вариант загрузки, затем вместо Вернуться нажмите Tab .
Отобразится командная строка ядра, затем добавьте persistence
с пробелом после последнего слова (quiet
), затем нажмите Return .
К сожалению, поскольку 1-й раздел связан с UEFI и является ISO-образом, вы не можете изменить команду загрузки.
Вам просто нужно добавить persistence
в командную строку загрузки, и больше ничего!? Есть способ, используя FAT и syslinux
, но вам придется много манипулировать данными. Это долго, и я нахожу это не очень хорошо. Я предпочитаю:
Более обычный , но немного длиннее (по крайней мере для 1-го изображения ),
Примечание :Все это было сделано подкорневымпользователем (это должно работать с использованием fakeroot
, но это не тестировалось там и сегодня ).
apt install live-build
... и все рекомендации.
Я написал небольшую XARGS
функцию для удаления закомментированных строк:
XARGS() { sed -ne '/#/d;s/ \t//g;H;${x;s/\n/ /g;s/^ //;p}'; }
Первая настройка bootparams
, с локализацией и аргументами сохранения:
ExtraBootParams=$(XARGS <
Теперь ваш список пакетов:
PackageList=$(XARGS <<-eopl
gnome
gnome-core
# gnome-full
# debian-forensics
debian-installer-launcher
eopl
)
Самый первый шагlb
:создание начального дерева:
lb config --architectures amd64 -d buster --debian-installer-gui \
true --archive-areas 'main contrib non-free' \
--bootappend-live "$ExtraBootParams"
Теперь у вас есть маленькое дерево, вы можете:
printf "%s\n" > config/package-lists/standard.list.chroot \
$Packages $PackageList
Хорошо, следующая команда займет очень много времени! (Приблизительно 1 час на моем хосте)
lb build
Если все в порядке, вы можете найти свой собственный Debian live:
ls -l *.iso
-rw-r--r-- 1 root root 1511817216 sep 7 15:32 live-image-amd64.hybrid.iso
Образ 'iso -гибридный' содержит два раздела для UEFI и живого микса таким образом, что оба EFI и bios могут загружаться.
file live-image-amd64.hybrid.iso
live-image-amd64.hybrid.iso: DOS/MBR boot sector; partition 2 : ID
=0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsect
or 708, 5696 sectors
Вы можете просто вставить в свой USB-ключ.:(Примечание :сначала убедитесь, что ваш USB-ключ не подключен!)
dd if=live-image-amd64.hybrid.iso of=/dev/sdX
Затем добавьте свой третий раздел для сохранения:
fdisk /dev/sdX <<<$'n\np\n\n\n\nw'
Форматирование и подготовка сохранения с помощьюunion
:
mkfs.ext4 -L persistence /dev/sdX3
mount /dev/sdX3 /mnt
echo '/ union' >/mnt/persistence.conf
sync
umount /mnt
Извлечь и попробовать...
Чтобы загрузиться с rootfs /
при зашифрованном сохранении, необходимо добавить dm-crypt
модуль и связанные двоичные файлы на initrd(начальный электронный диск ), добавив параметр CRYPTSETUP=y
в /etc/initramfs-tools/hooks/
...
Я написал небольшую XARGS
функцию для удаления закомментированных строк:
XARGS() { sed -ne '/#/d;s/ \t//g;H;${x;s/\n/ /g;s/^ //;p}'; }
Первая настройка bootparams
с локализацией и аргументами для сохраняемости и настройки шифрования:
ExtraBootParams=$(XARGS <
Теперь ваш список пакетов:
PackageList=$(XARGS <<-eopl
gnome
gnome-core
# gnome-full
# debian-forensics
debian-installer-launcher
eopl
)
И ваш выбор пакета:
Packages=$(XARGS <<-eopk
cryptsetup
cryptsetup-initramfs
debian-installer-launcher
firmware-linux-nonfree
firmware-linux-free
less
ssh
# openvpn
# xtightvncviewer
gsmartcontrol
smartmontools
partclone
ntfs-3g
task-gnome-desktop
user-setup
sudo
apt-utils
eopk
)
Конечно cryptsetup
требуется! ;-)
Самый первый шагlb
:создание начального дерева:
lb config --architectures amd64 -d buster --debian-installer-gui \
true --archive-areas 'main contrib non-free' \
--bootappend-live "$ExtraBootParams"
Теперь у вас есть маленькое дерево, вы можете:
printf "%s\n" > config/package-lists/standard.list.chroot \
$Packages $PackageList
Хорошо, следующие две команды займут очень много времени! (Примерно 40 м на моем хосте)
lb bootstrap ; lb chroot
Теперь вы можете добавить свой модуль и бинарники:
echo dm-crypt >> chroot/etc/initramfs-tools/modules
sed '/CRYPTSETUP=/s/^#//;s/=.*/=y/' -i \
chroot/etc/cryptsetup-initramfs/conf-hook
ln -s../../cryptsetup-initramfs/conf-hook \
chroot/etc/initramfs-tools/hooks/cryptsetup
chroot chroot live-update-initramfs -u
Затем запустить финальную стадию (займет еще много времени ~25'):
lb installer ; lb binary
Примечание :Если вы читаете cryptsetup: WARNING: Couldn't determine root device
, все в порядке! Это означает, что cryptsetup установлен на вашем initrd
.
Если все в порядке, вы можете найти свой собственный Debian live:
ls -l *.iso
-rw-r--r-- 1 root root 1511817216 sep 7 15:32 live-image-amd64.hybrid.iso
'iso -гибридный' umage уже содержит два раздела для UEFI и живое сведение таким образом, что EFI и BIOS могут загружаться.
file live-image-amd64.hybrid.iso
live-image-amd64.hybrid.iso: DOS/MBR boot sector; partition 2 : ID
=0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsect
or 708, 5696 sectors
Вы можете просто вставить в свой USB-ключ.:(Примечание :сначала убедитесь, что ваш USB-ключ не подключен!)
dd if=live-image-amd64.hybrid.iso of=/dev/sdX
Добавьте новый раздел Linux, используя свободное место.
fdisk /dev/sdX <<<$'n\np\n\n\n\nw'
Это создаст раздел 3 , используя свободное место на вашем USB-накопителе.
Затем подготовьте зашифрованный раздел
cryptsetup -q luksFormat /dev/sdX3
Введите пароль
cryptsetup -q luksOpen /dev/sdX3 persist
Введите пароль еще раз
mkfs.ext4 -L persistence /dev/mapper/persist
mount /dev/mapper/persist /mnt
echo '/ union' >/mnt/persistence.conf
sync
umount /mnt
cryptsetup luksClose persist
Вот и все.
eject /dev/sdX
Если вас не волнует, какие из дубликатов будут удалены, и вы согласны с сохранением первого вхождения и удалением остальных, вы можете использовать:
$ awk '/C\(Cl8\)/ && ++a > 1{next} /C\(Cl7\)/ && ++b > 1{next}1' file | color -l 'C\(Cl7\)','C\(Cl8\)'
1 V(Cl8) 2.121
2 V(C1,H3) 2.067
3 V(Cl7) 2.121
4 V(Cl7) 1.347
5 V(C4,H6) 2.067
6 V(Cl8) 1.347
7 V(Cl8) 0.918
8 V(C1,Cl7) 1.220
9 V(C4,Cl8) 1.220
10 V(Cl7) 0.918
11 V(C1,C4) 1.958
12 C(Cl8) 7.668
13 C(Cl7) 7.668
14 C(C1) 2.087
15 C(C4) 2.087
18 V(C1,H2) 2.067
19 V(Cl8) 2.122
20 V(Cl7) 2.122
21 V(C4,H5) 2.067
Вот вариант:
$ sort -k2,2 file | sed -e 'N;s/^\(.*C(Cl7).*\)\n.*C(Cl7).*/\1/' -e 's/^\(.*C(Cl8).*\)\n.*C(Cl8).*/\1/' | sort -nk1,1
1 V(Cl8) 2.121
2 V(C1,H3) 2.067
3 V(Cl7) 2.121
4 V(Cl7) 1.347
5 V(C4,H6) 2.067
6 V(Cl8) 1.347
7 V(Cl8) 0.918
8 V(C1,Cl7) 1.220
9 V(C4,Cl8) 1.220
10 V(Cl7) 0.918
11 V(C1,C4) 1.958
12 C(Cl8) 7.668
13 C(Cl7) 7.668
14 C(C1) 2.087
15 C(C4) 2.087
# 16 C(Cl8) 2.267 removed
# 17 C(Cl7) 2.267 removed
18 V(C1,H2) 2.067
19 V(Cl8) 2.122
20 V(Cl7) 2.122
21 V(C4,H5) 2.067