423 | 423 |
# directory. The migration logic will then take care of the
|
424 | 424 |
# rest. Note that it will take a second boot to fully
|
425 | 425 |
# migrate; it should only ever be needed on broken systems.
|
|
426 |
RAMSHM_ON_DEV_SHM="no"
|
|
427 |
if read_fstab_entry "/dev/shm"; then
|
|
428 |
RAMSHM_ON_DEV_SHM="yes"
|
|
429 |
fi
|
|
430 |
if read_fstab_entry "/run/shm"; then
|
|
431 |
RAMSHM_ON_DEV_SHM="no"
|
|
432 |
fi
|
|
433 |
|
426 | 434 |
if [ -L /run ]; then
|
427 | 435 |
if [ "$(readlink /run)" = "/var/run" ]; then
|
428 | 436 |
rm -f /run
|
|
430 | 438 |
fi
|
431 | 439 |
if bind_mount /var/run /run; then
|
432 | 440 |
bind_mount /var/lock /run/lock
|
433 | |
bind_mount /dev/shm /run/shm
|
|
441 |
if [ yes = "$RAMSHM_ON_DEV_SHM" ]; then
|
|
442 |
run_migrate /run/shm /dev/shm
|
|
443 |
else
|
|
444 |
run_migrate /dev/shm /run/shm
|
|
445 |
fi
|
434 | 446 |
fi
|
435 | 447 |
else
|
436 | 448 |
run_migrate /var/run /run
|
437 | 449 |
run_migrate /var/lock /run/lock
|
438 | |
run_migrate /dev/shm /run/shm
|
|
450 |
if [ yes = "$RAMSHM_ON_DEV_SHM" ]; then
|
|
451 |
run_migrate /run/shm /dev/shm
|
|
452 |
else
|
|
453 |
run_migrate /dev/shm /run/shm
|
|
454 |
fi
|
439 | 455 |
fi
|
440 | 456 |
}
|
441 | 457 |
|
|
511 | 527 |
{
|
512 | 528 |
MNTMODE="$1"
|
513 | 529 |
|
514 | |
if [ ! -d /run/shm ]
|
|
530 |
RAMSHM_ON_DEV_SHM="no"
|
|
531 |
SHMDIR="/run/shm"
|
|
532 |
if read_fstab_entry "/dev/shm"; then
|
|
533 |
if [ "$MNTMODE" = "mount_noupdate" ]; then
|
|
534 |
log_warning_msg "Warning: fstab entry for /dev/shm; should probably be for /run/shm unless working around a bug in the Oracle database"
|
|
535 |
fi
|
|
536 |
SHMDIR="/dev/shm"
|
|
537 |
RAMSHM_ON_DEV_SHM="yes"
|
|
538 |
fi
|
|
539 |
if read_fstab_entry "/run/shm"; then
|
|
540 |
if [ "$MNTMODE" = "mount_noupdate" ] && [ "$RAMSHM_ON_DEV_SHM" ]; then
|
|
541 |
log_warning_msg "Warning: fstab entries for both /dev/shm and /run/shm found; only /run/shm will be used"
|
|
542 |
fi
|
|
543 |
|
|
544 |
SHMDIR="/run/shm"
|
|
545 |
RAMSHM_ON_DEV_SHM="no"
|
|
546 |
fi
|
|
547 |
|
|
548 |
if [ ! -d "$SHMDIR" ]
|
515 | 549 |
then
|
516 | |
mkdir --mode=755 /run/shm
|
517 | |
[ -x /sbin/restorecon ] && /sbin/restorecon /run/shm
|
|
550 |
mkdir --mode=755 "$SHMDIR"
|
|
551 |
[ -x /sbin/restorecon ] && /sbin/restorecon "$SHMDIR"
|
518 | 552 |
fi
|
519 | 553 |
|
520 | 554 |
# Now check if there's an entry in /etc/fstab. If there is,
|
521 | 555 |
# it overrides the existing RAMSHM setting.
|
522 | |
if read_fstab_entry /run/shm; then
|
523 | |
if [ "$MNT_TYPE" = "tmpfs" ] ; then
|
524 | |
RAMSHM="yes"
|
525 | |
else
|
526 | |
RAMSHM="no"
|
527 | |
fi
|
|
556 |
if read_fstab_entry "$SHMDIR"; then
|
|
557 |
if [ "$MNT_TYPE" = "tmpfs" ] ; then
|
|
558 |
RAMSHM="yes"
|
|
559 |
else
|
|
560 |
RAMSHM="no"
|
|
561 |
fi
|
528 | 562 |
fi
|
529 | 563 |
|
530 | 564 |
KERNEL="$(uname -s)"
|
|
534 | 568 |
esac
|
535 | 569 |
|
536 | 570 |
if [ yes = "$RAMSHM" ]; then
|
537 | |
domount "$MNTMODE" tmpfs shmfs /run/shm tmpfs "-onosuid,${NODEV}noexec$SHM_OPT"
|
|
571 |
domount "$MNTMODE" tmpfs shmfs "$SHMDIR" tmpfs "-onosuid,${NODEV}noexec$SHM_OPT"
|
538 | 572 |
# Make sure we don't get cleaned
|
539 | |
touch /run/shm/.tmpfs
|
|
573 |
touch "$SHMDIR"/.tmpfs
|
540 | 574 |
else
|
541 | |
chmod "$SHM_MODE" /run/shm
|
|
575 |
chmod "$SHM_MODE" "$SHMDIR"
|
542 | 576 |
fi
|
543 | 577 |
|
544 | 578 |
# Migrate early, so /dev/shm is available from the start
|
545 | 579 |
if [ "$MNTMODE" = mount_noupdate ] || [ "$MNTMODE" = mount ]; then
|
546 | |
run_migrate /dev/shm /run/shm ../run/shm
|
|
580 |
if [ yes = "$RAMSHM_ON_DEV_SHM" ]; then
|
|
581 |
run_migrate /run/shm /dev/shm
|
|
582 |
else
|
|
583 |
run_migrate /dev/shm /run/shm
|
|
584 |
fi
|
547 | 585 |
fi
|
548 | 586 |
}
|
549 | 587 |
|