parted :создать раздел подкачки на gpt-диске (один вкладыш )не работает

#!/bin/bash
USED=**0**
free -m | more | grep -v total | head -1 | cut -d':' -f2 | cut -d' ' -f18

CACHE=**0**
free -m | more | grep -v Swap | tail -1 | cut -d':' -f2 | cut -d' ' -f9
TOTAL=**0**
free -m | more | grep -v total | head -1 | cut -d':' -f2 | cut -d' ' -f11
echo "scale=2 ; ((($USED - $CACHE) /$TOTAL) *100)" | bc
0
25.11.2021, 11:04
1 ответ

Вы не можете создать область подкачки с помощью команды parted. Вы можете настроить метку раздела, чтобы указать, что это раздел подкачки, но на самом деле это не так:

dd bs=1M count=100 if=/dev/zero >/tmp/100m.img
  100+0 records in
  100+0 records out
  104857600 bytes (105 MB, 100 MiB) copied, 0.687057 s, 153 MB/s

lo=$(losetup --show --find /tmp/100m.img); echo $lo
  /dev/loop0

parted $lo --script --align optimal unit MiB mklabel gpt mkpart primary linux-swap 1 100% print
  Model: Loopback device (loopback)
  Disk /dev/loop0: 200MiB
  Sector size (logical/physical): 512B/512B
  Partition Table: gpt
  Disk Flags:

  Number  Start    End     Size     File system     Name     Flags
   1      1.00MiB  100MiB  99.0MiB  linux-swap(v1)  primary

Теперь, если раздел подкачки был подготовлен, mkswapпредупредит, что перезаписал его, но это не:

mkswap ${lo}p1
  Setting up swapspace version 1, size = 99 MiB (103784448 bytes)
  no label, UUID=1abc5a9d-9c2e-452f-be16-d63f7e8e6af1

Просто чтобы подтвердить перезапись ("стирание старой подписи подкачки" ),повторим подготовку пространства подкачки:

mkswap ${lo}p1
  mkswap: /dev/loop0p1: warning: wiping old swap signature.
  Setting up swapspace version 1, size = 99 MiB (103784448 bytes)
  no label, UUID=2af1524b-101b-4e30-bdc0-2dfcadc1cde8

Наконец, отключите петлевое устройство и удалите файл временного образа:

losetup -d $lo
rm -f /tmp/100m.img

Вывод здесь состоит в том, что partedне (и действительно не может )подготовить раздел подкачки для немедленного использования.

0
25.11.2021, 13:37

Теги

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