Автор Тема: Раздел SWAP при запуске не подхватывется.[Решено]  (Прочитано 10887 раз)

ms1984

  • Гость
Чтобы мне сделать такую весчь рабочей у себя исходя из того что у меня в фстабе прописан
UUID=a56dad09-d3d0-4a2f-98c7-3641e212342e и он сейчас работает и подхвачен то команда:

#swapon -U a56dad09-d3d0-4a2f-98c7-3641e212342e
сделает так чтобы этот UUID остался и не слетал. ?

вечная проблема - никогда не дочитываю до конца  :

Оно означает, что каждой файловой системе соответствует её UUID
Код: [Выделить]

$ ls -l /dev/disk/by-uuid/|grep sda4
lrwxrwxrwx 1 root root 10 окт  3 21:16 5d69118e-962a-4203-b106-edf30f700164 -> ../../sda4

и что UUID указанный в fstab должен соответствовать  идентификатору файловой системы, иначе устройство не будет найдено.

Вроде все так.
Пробую в общем :)

Счас поставлю бэтку КДЕ (бета-версия ALT 8.0 Workstation K) погляжу результат.спс.

P.S. поставлю бетку без свопа. А уже как поставится бетка создам своп по вашим командам из нее.
« Последнее редактирование: 04.10.2016 15:48:55 от ms1984 »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
В принципе мне кажется, что я уловил суть действий.

Фактически при загрузке принудительно будет присваваться UUID тот который прописан в фстабе? верно?

и симулируем подключение swap на старте системы, - используется идентификатор swapfs установленный в fstab
Код: [Выделить]

# swapon -U 5d69118e-962a-4203-b106-edf30f700164


Теперь swapfs "на старте системы" подключен, поскольку UUID swapfs соответствует тому, который указан в fstab
Код: [Выделить]

# swapon -s
Имя файла            Тип      Размер   Исп-но   Приоритет
/dev/sda4                                 partition   2367484   0   -1

Вроде что-то устаканилось? :-)

Он не присваивается, - при инициализации системы берётся то, что находится в поле dev /etc/fstab.
Если это абсолютное имя устройства, то смена UUID файловой находящейся на этом устройстве, никак не влияет на монтирование этой файловой. Но если в поле dev fstab указан UUID файловой, при первом же пересоздании файловой, сменится её UUID
$ man fstab|sed -n '21,36p'
       Первое поле (fs_spec)  описывает  монтируемые  блочное  устройство  или
       удаленную файловую систему.

       Для  монтирования  обычных файловых систем в этом поле указывается файл
       (или  ссылка  на  файл)  блочного  устройства  (создаваемый  mknod(8)),
       содержащего  монтируемую  файловую  систему, например, `/dev/cdrom' или
       `/dev/sdb7'.  Для монтирования ресурса NFS указывается <узел>:<путь>, к
       примеру, `knuth.aeb.nl:/'.  В случае procfs указывайте `proc'.

       Вместо  прямого указания устройства можно указывать файловую систему (в
       случае ext2/ext3, xfs и других, поддерживающих эти возможности)  по  ее
       идентификатору UUID или метке (см.  e2label(8) или xfs_admin(8)), таким
       образом: LABEL=<метка>  или  UUID=<uuid>,  например,  `LABEL=Boot'  или
       `UUID=3e6be9de-8139-11d1-9106-a43f08d823a6'.  Это сделает систему более
       устойчивой, поскольку при добавлении  или  удалении  диска  SCSI  может
       смениться имя устройства, но не метка файловой системы.

Поле dev указывает, какое блочное устройство нужно смонтировать.
Точнее говоря: файловую на этом блочном устройстве.
Само же поле, для блочного устройства, может содержать или абсолютное имя устройства (раздела), или UUID файловой системы находящейся на этом блочном устройстве.
man описывает всё верно. Если бы не альтовый инсталлятор который пересоздаст все swapfs на swap-разделах. Заодно сменив и UUID который можно увидеть в /dev/disk/by-uuid/

Вот UUID указанный для swap sda4 в /etc/fstab на который смотрит mount
# grep swap /etc/fstab
UUID=5d69118e-962a-4203-b106-edf30f700164 swap swap defaults 0 0
Подключить swapfs как swap.

А вот реально существующий UUID swap sda4
# ls -l /dev/disk/by-uuid/|grep sda4
lrwxrwxrwx 1 root root 10 окт  3 21:16 5d69118e-962a-4203-b106-edf30f700164 -> ../../sda4
Если этот UUID в виде симлинка при монтировании/подключении не будет найден, последует сообщение в Х-терминале (при ручном подключении) или в виртуальном терминале (ttyX, на загрузке системы), например:
swapon: cannot find the device for 5d69118e-962a-4203-b106-edf30f700164
swapon: не найдено устройство для 5d69118e-962a-4203-b106-edf30f700164

Т.е.
Обращаясь к строке параметров в fstab, система ищет этот UUID в /dev/disk/by-uuid/ как символическую ссылку которая указывает на абсолютное имя устройства, файловую систему на котором нужно смонтировать или подключить.

Например:

fstab говорит, что файловую систему с этим UUID нужно монтировать как корневую
# cat /etc/fstab | col -bfx | grep " / "
UUID=3ec424f7-e9bd-45a1-9c0a-8148cd4421fc       /       ext4    relatime        1       1

Эта файловая (на sda1) имеет этот UUID
# tune2fs -l /dev/sda1|grep -i uuid
Filesystem UUID:          3ec424f7-e9bd-45a1-9c0a-8148cd4421fc

Символическая ссылка в качестве UUID, указывает на абсолютное имя устройства которое нужно монтировать как корневую файловую систему
# ls -l /dev/disk/by-uuid/|grep sda1
lrwxrwxrwx 1 root root 10 окт  2 22:53 3ec424f7-e9bd-45a1-9c0a-8148cd4421fc -> ../../sda1

Ну вот так вот где-то...

Кишки fstab (etc/fstab)  HDD1, который слетает после установки других ОС на другой HDD:
proc /proc proc nosuid,noexec,gid=proc 0 0
devpts /dev/pts devpts nosuid,noexec,gid=tty,mode=620 0 0
tmpfs /tmp tmpfs nosuid 0 0
UUID=ffc8d03d-c0d5-468b-9138-4704c063d950 / ext4 relatime 1 1
UUID=cef6f490-408d-4d49-98c0-c00b195de4d4 /home ext4 nosuid,relatime 1 2
UUID=b76b0661-c9bf-4dbe-9879-1b2759771bf3   swap   swap   defaults   0   0
+++посмотрел в Gpated там присвоен свопу UUID такой номер, ну и соот-но своп не активен- a56dad09-d3d0-4a2f-98c7-3641e212342e

вот это он выдает :
clevo-w35xxSSQ-i7-070d27 ~ # swapon -s
Filename Type Size Used Priority
/dev/zram0                              partition 4064664 0 -1
clevo-w35xxSSQ-i7-070d27 ~ #

Конечно.
При текущем положении вещей, у вас команда выдаст где-то так
# ls -l /dev/disk/by-uuid/|grep sda2
lrwxrwxrwx 1 root root 10 окт  2 22:53 a56dad09-d3d0-4a2f-98c7-3641e212342e -> ../../sda2

что не соответствует UUID указанному в fstab у вас
UUID=b76b0661-c9bf-4dbe-9879-1b2759771bf3   swap   swap   defaults   0   0

Здесь может быть три варианта развития событий:

1:
- поправить UUID в fstab, конфиге grub для resume и перегенерировать через grub-mkconfig

2:
- сменить UUID в fstab на абсолютное имя устройства, - у вас это /dev/sda2 для swap

3:
- Применительно к вашей ситуации, использовать команду
# mkswap -U  a56dad09-d3d0-4a2f-98c7-3641e212342e  /dev/sda2
При условии, что вы загрузились в систему у которой отвалился swap.

Теперь по параметрам команды mkswap:

Если ваш UUID для этого отвалившегося swap:
$ grep swap /etc/fstab|grep -v '^#'
UUID=a56dad09-d3d0-4a2f-98c7-3641e212342e   swap   swap   defaults   0   0
Наверняка этот же UUID и в resume для grub

Ваш /dev/sda2 на котором находится этот отвалившийся swap:
Данные с  HDD1 с ОС загруженной с него (АльтЛинукс Centaurus) :
# fdisk -l /dev/sda
Диск /dev/sda: 931,5 GiB, 1000204886016 байт, 1953525168 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: dos
Идентификатор диска: 0x00081ee3

Устр-во    Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sda1  *                 2048   57346047   57344000  27,4G            83 Linux
/dev/sda2                57346048   65538047    8192000   3,9G            82 Linux своп / Solaris
/dev/sda3                65538048 1091586047 1026048000 489,3G            83 Linux
/dev/sda4              1091586048 1953523711  861937664   411G            83 Linux

ms1984

  • Гость
счас буду еще пробовать) сделал криво присвоение.
Поставилась беткаВоркстайшена с КДЕ5 потом попробовал снова войти в Кентавр снова swap потерялся.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Чтобы мне сделать такую весчь рабочей у себя исходя из того что у меня в фстабе прописан
UUID=a56dad09-d3d0-4a2f-98c7-3641e212342eи он сейчас работает и подхвачен то команда:

#swapon -U a56dad09-d3d0-4a2f-98c7-3641e212342e
сделает так чтобы этот UUID остался и не слетал. ?

Не-а. :-) Эта команда только подключает swapfs с указанным UUID и этой же командой без перезагрузки системы можно проверить, подключится ли указанный swap на старте системы.


вечная проблема - никогда не дочитываю до конца  :

Оно означает, что каждой файловой системе соответствует её UUID
Код: [Выделить]

$ ls -l /dev/disk/by-uuid/|grep sda4
lrwxrwxrwx 1 root root 10 окт  3 21:16 5d69118e-962a-4203-b106-edf30f700164 -> ../../sda4

и что UUID указанный в fstab должен соответствовать  идентификатору файловой системы, иначе устройство не будет найдено.

Эту фразу можно произнести прямо до наоборот:
и что UUID отображаемый в /dev/disk/by-uuid/ для swap, должен соответствовать UUID swapfs указанному в fstab.

Из чего сразу же вытекает что:
- если одной командой mkswap пересоздать swap с тем же принудительно указанным UUID который содержится в fstab для swap-раздела, то всё остальное починится само-собой.
 

P.S. поставлю бетку без свопа. А уже как поставится бетка создам своп по вашим командам из нее.

Для абсолютного имени устройства:

swapon -s
- отображает текущее состояние swapfs (подключено/не подключено)

swapon -a
- подключить все swap

swapoff -a
- отключить все swap

swapon /dev/sda2
- подключить swap на устройстве sda2

swapoff /dev/sda2
- отключить swap на устройстве sda2

mkswap -U какой-то-боль-шой-uuid /dev/sda2
- создать swapfs с указанным UUID на устройстве /dev/sda2

Преимущество shell-команд:
- отвалились Х-сы или нет, да и флаг им в руки, - команды будут работать всегда.
« Последнее редактирование: 04.10.2016 18:14:56 от Speccyfighter »

ms1984

  • Гость
Для абсолютного имени устройства:

swapon -s
- отображает текущее состояние swapfs (подключено/не подключено)

swapon -a
- подключить все swap

swapoff -a
- отключить все swap

swapon /dev/sda2
- подключить swap на устройстве sda2

swapoff /dev/sda2
- отключить swap на устройстве sda2

mkswap -U какой-то-боль-шой-uuid /dev/sda2
- создать swapfs с указанным UUID на устройстве /dev/sda2


Спасибо!
Кажись все получилось!Своп пашет.В Гпатед он активен.
В КДЕ5 воркстайшен бетка иксы слетели счас буду переустанавливать проверю слетит своп или нет.
abra@clevo-w35xxSSQ-i7-070d27 ~ $ swapon -s
bash: swapon: команда не найдена
abra@clevo-w35xxSSQ-i7-070d27 ~ $ su -
Password:
clevo-w35xxSSQ-i7-070d27 ~ # swapon -s
Filename Type Size Used Priority
/dev/zram0                              partition 4064664 0 -1
clevo-w35xxSSQ-i7-070d27 ~ # swapoff -a
swapoff: cannot find the device for UUID=a56dad09-d3d0-4a2f-98c7-3641e212342e
clevo-w35xxSSQ-i7-070d27 ~ # ls

clevo-w35xxSSQ-i7-070d27 / # mkswap -U a56dad09-d3d0-4a2f-98c7-3641e212342e /dev/sda2
mkswap: /dev/sda2: предупреждение: очистка старой сигнатуры swap.
Устанавливается пространство для swap версии 1, размер = 3,9 GiB (4194299904 байт)
без метки, UUID=a56dad09-d3d0-4a2f-98c7-3641e212342e
clevo-w35xxSSQ-i7-070d27 / # swapon -a
clevo-w35xxSSQ-i7-070d27 / # swapon
NAME      TYPE      SIZE USED PRIO
/dev/sda2 partition 3,9G   0B   -1
clevo-w35xxSSQ-i7-070d27 / #

Получилось как вы и говорили своп UUID сменился у свопа, а запись осталась в фстабе старая. я взял старую запись из фстаба UUID  и ее назначил.
« Последнее редактирование: 04.10.2016 20:50:48 от ms1984 »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Получилось как вы и говорили своп UUID сменился у свопа, а запись осталась в фстабе старая. я взял старую запись из фстаба UUID  и ее назначил.

Без тени иронии:
Рад за вас.
Ещё один в нашей гвардии.

Всё в мире повторяется и ничего не ново.
На платформе ZX Spectrum есть болезнь: боязнь машинного кода. Это как невидимый непреодолимый барьер. Нужно помочь пользователю преодолеть его.  Проблема в одном: у пользователя должно быть желание, чтобы у того кто помогает появился стимул.
Вы справились с этим, преодолев свой барьер.


Наверное не лишним будет повторить:
во время выполнения команды swapoff, содержимое swap сбрасывается в память и на медленных шинах и hdd это может занять некоторое время:
# swapon -s
Имя файла Тип Размер Исп-но Приоритет
/dev/sda4                              partition 2367484 76132 -1
# free -m
             total       used       free     shared    buffers     cached
Mem:           997        967         30          0         35        230
-/+ buffers/cache:        701        295
Swap:         2311         74       2237

Отключаем swap (секунды.доли_секунд)
# time -f %e swapoff /dev/sda4
9.47
# free -m
             total       used       free     shared    buffers     cached
Mem:           997        982         14          0         32        207
-/+ buffers/cache:        742        254
Swap:            0          0          0
« Последнее редактирование: 04.10.2016 22:10:51 от Speccyfighter »

ms1984

  • Гость
Наверное не лишним будет повторить:
во время выполнения команды swapoff, содержимое swap сбрасывается в память и на медленных шинах и hdd это может занять некоторое время:
Спасибо.
Но что-то не так сделал. Вчера снова переставлял вторую ось (бета-версия ALT 8.0 Workstation K) своп отвалился один фиг.Снова его прописывал через mkswap чтобы фсТаб не править. В принципе его подрубать не сложно (после второго и третьего раза :)))и руками
« Последнее редактирование: 05.10.2016 14:46:40 от ms1984 »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Вчера снова переставлял вторую ось (бета-версия ALT 8.0 Workstation K) своп отвалился один фиг.
Снова его прописывал через mkswap чтобы фсТаб не править.
В принципе его подрубать не сложно (после второго и третьего раза :)))и руками ( https://yadi.sk/i/_JLVXnpkwE3c8 )

Это беда альтового инсталлятора:
В нём нельзя снять маркер - форматировать этот своп. Чтобы один своп под формат, а другой не трогать.
Инсталлятор форматнёт все swap-ы которые существуют на момент инсталляции системы.
Единственный вариант это багрепорт повесить с описанием аппаратной части, что происходит и что требуется. И привести пару выбросов: grep fstab / by-uuid до установки и после установки, чтобы ситуация была наглядна. Вот так было, - вот так есть после инсталляции.
Но вряд ли этот баг будет быстро исправлен:
p8 недавно отрелизился, нужно переписывать инсталлятор и сомнительно что у альтов сейчас есть время и возможности исправить баг в текущий момент. Но багрепорт в любом случае не помешает.

У меня тоже такое было, пока по старости не умер второй винчестер.
Временами это доставало: для теста и подобного, я использую не виртуалки, а реальное железо (но это мои личные взгляды на тест).
Да и сейчас может достать, если вздумается систему установить на usb-hdd в качестве резервной.

Тут такая мысль пришла...
В принципе, для системы у которой отваливается своп, можно наваять сервис, который на старте системы будет проверять:
если by-uuid не соответствует grep-нутому fstab, скрипт выполнять, грепнуть fstab, swap пересоздать и подключить.
Если соответствует, - ничего не делать.
Но выполнять позже сервиса blk-availability
Тогда вообще ничего делать не надо будет.
Но это по большому счёту костыль.
« Последнее редактирование: 05.10.2016 14:55:52 от Speccyfighter »

ms1984

  • Гость
Это беда альтового инсталлятора:
В нём нельзя снять маркер - форматировать этот своп. Чтобы один своп под формат, а другой не трогать.
Инсталлятор форматнёт все swap-ы которые существуют на момент инсталляции системы.

скорее всего да. ставил юбунту и минта своп не тронулся, но при этом один фиг минтовский инсталятор находил своп на другом харде и один фиг его форматировал, но привязка осталась как ни странно. А ставишь вторым дистриб любой Альт своп слетает и приходится ручками подрубать, в принципе не критично.

P.S. нашел решение когда иксы не грузятся зы) удяляю все созданные (нвидия, ЦУС и прочее) икСорги,  бэкапы, в /etc/ и все файлы в папке /etc/X11/xorg.conf.d/ и иксы поднимаются и все по дефолту скидывается и перестанавливать не надо. Гыыыы
« Последнее редактирование: 05.10.2016 19:51:51 от ms1984 »