Чтобы BIOS загружал Mint, вам нужен загрузчик, и вы можете воспользоваться следующими способами:
1- Живая система: { {1}} при использовании unetbootin или любого другого программного обеспечения, которое вы предпочитаете, изменения в системе (mint) не поддерживаются.
2- Постоянная система: вы отключаете или отключаете внутренний жесткий диск, чтобы не испортить загрузчик, а затем загружаете Mint с третьего носителя (live USB или DVD) и устанавливаете его на SSD, как вы бы с вашим внутренним приводом.
#!/usr/bin/env zsh
# To care about hidden filenames:
#setopt GLOB_DOTS
# Load the zstat builtin
zmodload -F zsh/stat b:zstat
# Get the regular files in the current directory,
# ordered by size (largest first)
files=(./*(.OL) )
# Precalculate the filesizes
typeset -A filesizes
for file in "${files[@]}"; do
filesizes[$file]=$( zstat +size "$file" )
done
# The maximum size of a bin is the size of the largest file
maxsize=${filesizes[${files[1]}]}
binsizes=()
typeset -A filebins
for file in "${files[@]}"; do
filesize=${filesizes[$file]}
bin=1 # try fitting into first bin first
ok=0 # haven't yet found a bin for this file
for binsize in "${binsizes[@]}"; do
if (( filesize + binsize <= maxsize )); then
# File fits in this bin,
# update bin size and place file in bin
binsizes[$bin]=$(( filesize + binsize ))
filebins[$file]=$bin
ok=1 # now we're good
break
fi
# Try next bin
bin=$(( bin + 1 ))
done
if [ "$ok" -eq 0 ]; then
# Wasn't able to fit file in existing bin,
# create new bin
binsizes+=( "$filesize" )
filebins[$file]=${#binsizes[@]}
fi
done
# Do final output
printf 'Bin max size = %d\n' "$maxsize"
for file in "${files[@]}"; do
printf '%d: %s (file size=%d / bin size=%d)\n' "${filebins[$file]}" "$file" \
"${filesizes[$file]}" "${binsizes[$filebins[$file]]}"
done | sort -n
Приведенный выше zsh
сценарий оболочки объединяет все файлы в текущем каталоге с максимальным размером ячейки, строго исходя из размера самого большого файла. Он реализует первый алгоритм подбора -с файлами, упорядоченными по уменьшению размера. Это то, что называется алгоритмом «FFD» в статье Википедии «Проблема упаковки в контейнер» . Алгоритм "MFFD" не -тривиален для реализации в zsh
менее чем в 200 или около того строк кода, поэтому я не буду публиковать его здесь.
Тестирование:
$ ls -l
total 450816
-rw-r--r-- 1 kk wheel 10485760 Jan 19 23:53 file-10.log
-rw-r--r-- 1 kk wheel 20971520 Jan 19 23:53 file-20.log
-rw-r--r-- 1 kk wheel 31457280 Jan 19 23:53 file-30.log
-rw-r--r-- 1 kk wheel 41943040 Jan 19 23:53 file-40.log
-rw-r--r-- 1 kk wheel 52428800 Jan 19 23:53 file-50.log
-rw-r--r-- 1 kk wheel 73400320 Jan 19 23:53 file-70.log
$ zsh../script.sh
Bin max size = 73400320
1:./file-70.log (file size=73400320 / bin size=73400320)
2:./file-20.log (file size=20971520 / bin size=73400320)
2:./file-50.log (file size=52428800 / bin size=73400320)
3:./file-30.log (file size=31457280 / bin size=73400320)
3:./file-40.log (file size=41943040 / bin size=73400320)
4:./file-10.log (file size=10485760 / bin size=10485760)
Номер в начале каждой строки выше соответствует номеру ячейки, присвоенному файлу.
Похоже, что это в значительной степени эквивалентно проблеме упаковки в контейнеры .
Задача Bin Packing представляет собой NP -сложную задачу, поэтому для ее решения не существует известного способа быстрого перебора (перебора всех вариантов в каком-то разумном порядке, что исключает глупые попытки, такие как добавление дополнительных файлов в уже слишком большой группа )— это то, что нужно.
Для шести файлов метод полного перебора должен быть достаточно простым, чтобы его можно было выполнить вручную; просто перечислите все возможные группы, подсчитайте, как они распределяют использование файла, и выберите ту, которая дает вам наименьший максимальный размер группы.