Как создать необработанное (без файловой системы )кольцевое устройство, которое проходит как законное блочное устройство?

После долгих поисков я пришел к этому ответу . Комментарий @Adobe ссылается на https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options#Filter_Options_for_the_CSV_Filter, в котором описаны параметры фильтра.

У меня сработала эта команда:

libreoffice --calc mydata.csv --infilter=”CSV:44,34,0,1,4/2/1”

Объяснение содержания аргумента инфильтра

После типа есть пять полей, разделенных запятыми -:

1. Separator, 44 is the ASCII value of comma
2. Text delimiter, 34 is the ASCII value of double quote
3. Character set to use, 0 is the system default
4. Line number to start conversion. I have no header line, so it is 1
5. Cell format per column, separated by /. It does not seem to matter if there are a different number of columns in the data: Extra columns default to Standard, extra formats are ignored.
   4 = date d/m/y; 2 = text; 1 = standard

Когда файл открыт в Calc, я могу отсортировать его в хронологическом порядке и выполнить арифметические действия в числовом столбце.

В справочнике есть много других опций, не менее исчерпывающих.

1
20.10.2021, 18:44
2 ответа

losetup сделает это за вас. Если у вас есть неиспользуемое устройство цикла /dev/loop0:

# Make the file
head -c 10240 /dev/zero > /tmp/zeroes
# Use it as a block device
sudo losetup /dev/loop0 /tmp/zeroes
# Remove the device
sudo losetup -d /dev/loop0
1
20.10.2021, 18:59

Loopback devices have to be formatted with some sort of filesystem in order to be mounted

Каждое блочное устройство должно быть отформатировано, если вы хотите его смонтировать. На самом деле вы монтируете файловую систему, а не само блочное устройство, так что это не имеет смысла. Вам просто нужен файл, а затем используйте losetup -f disk.imgдля создания петлевого устройства, вот и все. Контурные устройства являются блочными устройствами и видны в выводе lsblk, поэтому Ceph должен иметь возможность их использовать.

$ dd if=/dev/zero of=disk.img bs=1M count=100
$ sudo losetup -f disk.img
$ lsblk -f
NAME                   FSTYPE  FSVER  LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINT
loop0                                                                                             
...

Если петлевое устройство использовать нельзя, можно использовать targetcli для создания более убедительного блочного устройства с файловой поддержкой, которое выглядит как обычный диск SCSI.

# targetcli /backstores/fileio/ create test disk.img
# targetcli /loopback create
Created target naa.50014050efbb30e0.
# targetcli /loopback/naa.50014050efbb30e0/luns create /backstores/fileio/test

При этом создается новый (фальшивый )диск, поддерживаемый тем же файлом, который я создал для кольцевого устройства выше:

# lsblk
NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
loop0                                           7:0    0   100M  0 loop  
...
sdb                                             8:16   0   100M  0 disk 
...
1
20.10.2021, 19:00

Теги

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