ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] hibernate: cleanup after Software Suspend 2
@ 2005-08-06 19:44 Arioch
  2005-08-06 20:54 ` [sisyphus] " Konstantin A. Lepikhov
  2005-08-06 23:56 ` [sisyphus] " Alex Yustasov
  0 siblings, 2 replies; 12+ messages in thread
From: Arioch @ 2005-08-06 19:44 UTC (permalink / raw)
  To: sisyphus

file:///usr/share/doc/hibernate-1.09/init.d/hibernate-cleanup.sh

Этот скрипт зачищает места, где SwSusp2 может хранить образ оперативки.
Поскольку SwSusp2 сохраняет в образ кэши VFS - при каждой загрузке 
старые образы нужно зачищать.
Увы, ядро это делает только при нормальном resume, но если отменить 
просыпание (resume2=no), то образы остаются нетронуты, поэтому
   1) если образ лежит в swap partition - swapon не срабатывает.
   2) потом однажды, при обычной загрузке с "просыпанием" можно 
подцепить этот образ и убить ФС неверными старыми кэшами.


Скрипт перебирает swap partitions и файлы в которых по его мнению могут 
остаться образы. Запускаться он по задумке авторов должен из 
/etc/rc.d/rc.sysinit после монтирования дисков (mount -a) но до 
включения swap. В случае же просыпания - до него дело просто не доходит.

Это не вписывается в Альт, потому что у нас swap partitions включаются 
до mounting local filesystems.

Насколько понимаю, выхода может быть 3:
  1) разделить скрипт на очистку разделов и очистку файлов, запускать 
эти половинки из разных мест rc.sysinit, пробить это изменение в mainstream
  2) то же без mainstream, forkнуит но отслеживать обновления скрипта в 
mainstream'e
  3) изменить rc.sysinit, чтобы при наличие скрипта (т.е.установленном 
пакете hibernate) - очередность mount -a и swapon возвращалась к более 
классическому варианту.

Вообще, ввиду потенц.опасности загрузки со старым образом IMHO надо этот 
скрипт помещать не в hibernate.rpm, который м.б. юзер и не поставит - а 
в ядра с поддержкой SwSusp2.

Ниже мой подправленный rc.sysinit (вариант 3):

...........skip.........

  # Initialize bootsplash subsystem.
splash_init 5

splash_update start 1

# Set the system clock (when /etc/adjtime is missing)
[ -s /etc/adjtime ] || /etc/init.d/clock start


## Arioch - swapon must be moved later, for SwSusp2/hibernate-cleanup
SWSUSP2_CLEANUP=/etc/rc.d/scripts/hibernate-cleanup.sh

if [ -x $SWSUSP2_CLEANUP ]; then
      echo "Hibernate cleanup script present - will not activate swap 
partitions yet"
else
# Activate swap
      action "Activating swap partitions:" swapon -a -e
fi
## /Arioch


# Set the hostname
action "Setting hostname $HOSTNAME:" hostname "$HOSTNAME"




...........skip.........




if [ -x /sbin/quotaon ]; then
         action "Turning on user and group quotas for local 
filesystems:" /sbin/quotaon -a
fi

## Arioch: going on with SwSusp2
if [ -x $SWSUSP2_CLEANUP ]; then
  #  action "Removing Software Suspend images, if any."   $SWSUSP2_CLEANUP
  # script itself prints looog greeting
  action "Hibernate:  "   $SWSUSP2_CLEANUP

    # Ugly, but it seems we do not want user, entering into single mode 
without swap???
    swapon -a -e
fi
## /Arioch

# Do the following while waiting for an 'I' from the user...
{

# Cleanup everything :)
action "Cleaning up temporary files from previous boot:" 
/etc/rc.d/scripts/cleanup

# Language fixes
/etc/rc.d/scripts/lang

# Now turn on swap again (in case we swap to files)
## Arioch: and in case SwSusp2/Hibernate cleanup script present. ;-D
splash_update swap 7
action "Activating swap space:" swapon -a

# Initialize the serial ports
ExecIfExecutable /etc/rc.d/rc.serial

...........skip.........





Монстрик тот еще получился, но я старался по минимуму менять сложившиеся 
скрипты и процесс загрузки.




^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2005-08-09 19:42 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-08-06 19:44 [sisyphus] hibernate: cleanup after Software Suspend 2 Arioch
2005-08-06 20:54 ` [sisyphus] " Konstantin A. Lepikhov
2005-08-07  6:01   ` Andrey Rahmatullin
2005-08-07 12:53   ` Arioch
2005-08-06 23:56 ` [sisyphus] " Alex Yustasov
2005-08-07 13:08   ` [sisyphus] " Arioch
2005-08-07 17:45     ` Alex Yustasov
2005-08-08  6:54   ` [sisyphus] " Epiphanov Sergei
2005-08-08 16:48     ` [sisyphus] литература Arioch
2005-08-09  0:29       ` [JT] " Алексей Хлызов
2005-08-09 19:42         ` [sisyphus] Re: [JT] литература Arioch
2005-08-09 19:42         ` Arioch

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git