Где установщик Debian выбирает MBR или GPT?

Один очень простой и понятный способ в TXR :

@(repeat)
@x0
@x1
@x2
@y0
@y1
@y2
@z0
@z1
@z2
@  (output)
@x0 @y0 @z0
@x1 @y1 @z1
@x2 @y2 @z2
@  (end)
@(end)

Выполнить:

$ txr reshape.txr data
a1 aa aaa
b1 bb bbb
c1 cc ccc
d1 dd ddd
e1 ee eee
f1 ff fff
g1 gg ggg
h1 hh hhh
i1 ii iii

Есть способы сжать это, но вам нужно немного поработать их труднее понять, например:

@(repeat)
@  (collect :times 9)
@line
@  (end)
@  (bind (x y z) @(tuples 3 line))
@  (output)
@    (repeat)
@x @y @z
@    (end)
@  (end)
@(end)

Кроме того, вот как кто-то, кто хоть немного знает, что они делают в Awk, может реализовать:

        { a[(NR-1)%9] = $0 }
!(NR%9) { print a[0], a[3], a[6]
          print a[1], a[4], a[7]
          print a[2], a[5], a[8] }

Вывод:

$ awk -f reshape.awk data
a1 aa aaa
[ ... ]
i1 ii iii

И если этот кодировщик найдет повторяющиеся шаблоны print repugnant:

        { a[(NR-1)%9] = $0 }
!(NR%9) { for (i = 0; i < 3; i++)
            print a[i], a[i+3], a[i+6] }

Решение TXR Lisp:

[(opip (tuples 3) (tuples 3) (mappend transpose)
       (mapcar (aret `@1 @2 @3`)) tprint)
 (get-lines)]

Выполнить:

$ txr reshape.tl < data

В командной строке: использовать -t , отбросить tprint :

$ txr -t '[(opip (tuples 3) (tuples 3) (mappend transpose)
                 (mapcar (aret `@1 @2 @3`)))
           (get-lines)]' < data

Это работает путем ввода ввода через конвейер, который разбивает его на триплеты , а затем на триплеты этих триплетов (в основном матрицы 3x3, состоящие из вложенных списков). Эти матрицы индивидуально транспонируются, а их строки затем складываются вместе, чтобы получился один гигантский список триплетов.Эти триплеты превращаются в строки с помощью оператора частичного приложения aret , интерполяции строк, и выводятся с помощью tprint , который обрабатывает списки строк как строки для вывода. Синтаксис

(aret `@1 @2 @3`)

расширяется до чего-то похожего на

(lambda (. args)
  (apply (lambda (arg1 arg2 arg3)
           `@arg1 @arg2 @arg3`)
         args))

. По сути, он неявно создает анонимную функцию с одним аргументом, которая обрабатывает свой аргумент как список аргументов для применения к анонимной функции с тремя аргументами, где @ 1 , @ 2 и @ 3 обозначают аргументы. Тело функции получается из исходного квазистрочного выражения путем замены этих специальных числовых параметров на имена аргументов, сгенерированные машиной.

2
12.05.2019, 01:54
1 ответ

Используемый тип разбиения определяетсяpartman-partitioning. Правила зависят от архитектуры; для 64-битных систем x86 -, если установщик обнаруживает Mac или EFI (, что означает, что установщик был загружен в режиме EFI, а не в режиме совместимости с BIOS -), или если диск, который нужно разбить, 2 ТиБ или более, выбирается GPT, в противном случае — MBR.

6
27.01.2020, 21:53

Теги

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