icast
nafanja
dd, tar ???

dd не слишком жестоко?:)
если бы было дело с линуксом то проблем не было бы. а то
приходиться снимать образ венды
Если винда, то IMHO dd - это единственный надёжный вариант. Доступ к ntfs в линуксе несколько попсовый, поэтому tar и любое другое средство пофайлового копирования чревато, например, потерей потоков, связанных с файлами. Если и есть под линуксом программа, которая в полном объёме понимает ntfs, то я о такой не слыхал, и очень хотел бы услыхать.
Если объём копии более критичен, чем время копирования, то можно перед копированием прописывать свободное место нулями, а образ сжимать. Но тут тоже не всё гладко на ntfs. Тупая запись нулей (типа
dd if=/dev/zero  bs=8M of=/mnt/$NAME/zero
rm -f /mnt/$NAME/zero
) иногда "подвисает" на почти заполненном разделе.
arcanis
первое, что приходит на ум - убрать букву a(b,c) из sd[a-z][0-9]. Это будет работать в большинстве случаев, хотя, иногда флешки определяются при загрузке, как sda.
Просто и эффективно, спасибо! А насчёт флэшек как sda, - это, возможно, от BIOS зависит. У меня, к счастью, флэшка никогда не определяется как sda, если загрузка с винчестера.
Мой итог обсуждения: в правиле udev поменял "sd[a-z][0-9]" на "sd[b-z][0-9]", и забыл про фокусы с копирование и удалением.
Ну и чтобы совсем закруглиться, привожу свои средства отмонтирования, заточенные на openbox.
1. Скрипт, генерирующий динамическое (под)меню openbox:
[root@s2 bin]# cat umenu.py
#!/usr/bin/python
print("<openbox_pipe_menu>")
n = 0
automount_dir = '/media/'
print('<separator label="removables"/>')
for s in open("/proc/self/mounts"):
  media = ''
  s = s.replace(chr(9), ' ')
  word = s.split(' ', 3)
  dev = word[0]
  i1 = s.find(automount_dir)
  if (dev != "") and (i1 >= 0):
    if media != dev[:len(automount_dir)]:
      if n != 0:
        print('<separator/>')
      # remove the number (f.e. sdb13 -> sdb), but not for sr0
      media = dev
      if (media != '/dev/sr0'):
        while media[-1].isdigit():
          media = media[:-1]
      print('<item label="eject ' + media[:-1] + '_' + media[-1] + '">')
      print('  <action name="Execute">')
      print('    <execute>')
      print('       d-eject ' + media)
      print('    </execute>')
      print('  </action>')
      print('</item>')
    n = n + 1
    point = word[1]
    print('<item label="umount ' + '  ' + dev + ' -> ' + point + '">')
    print('  <action name="Execute">')
    print('    <execute>')
    print('       d-umount ' + dev)
    print('    </execute>')
    print('  </action>')
    print('</item>')
if n == 0:
    print('<item label="none"/>')
print("</openbox_pipe_menu>")
2. Включение этого скрипта в систему меню (файл menu.xml):
<menu execute="umenu.py" id="umount_removable" label="_Unmount removable"/>
3. Навешивание этого меню на горячую клавишу Win+u (файл rc.xml, секция <keyboard>):
<keybind key="W-u"> <action name="ShowMenu"> <menu>umount_removable</menu> </action> </keybind>
kurych
Больше похоже на то, что OpenOffice и LibreOffice пишут в ~/.recently-used, а большинство GTK-шных приложений пишут в ~/.local/share/recently-used.xbel.
Проясниилось. Оказалось, чтобы история писалась в ~/.local/share/recently-used.xbel, надо установить пакет libreoffice-gnome.
Natrio
Что значит "до загрузки системы"? В initramfs, что ли?
До загрузки системы - в самом прямом смысле. Компьютер выключен, а на винте в /etc/udev/rules.d/ файл есть.
Natrio
И почему нельзя наперегонки с fstab? Вроде у вас автомонтирование идёт в каталог внутри /media/ , а значит непосредственно к корневой ФС, где и fstab, и само правило UDEV для автомонтирования, – ничто не мешает монтировать в любом порядке."
Как-то не приходило в голову. У меня в fstab прописано монитирование разделов винта в /mnt, а в правиле udev - монтирование в /media. А перенацелить всё в одно место, чтобы результат не зависел от того, кто монтирует, - наверно, можно. Я эту мысль буду думать, спасибо.
Natrio
И кстати, мне очень интересно, как вы решили проблему отмонтирования? Вы же знаете, что флешка не CD, и отмонтировать автоматически при извлечении её невозможно, и ваши инструкции на umount в UDEV лишь удаляют запись о монтировании после нештатного извлечения. Следовательно, вы всё же как-то руками отмонтируете эти флешки?
Скрипт парсит /proc/self/mounts и генерирует динамическое меню для openbox. Генерация и вызов этого меню повешена на горячую клавишу (Win+u, от Unmount). Так что в простейшем случае, когда воткнута всего одна флэшка, отмонтирование делается в три клавиши: Win+u, Enter. В общее иерархическое меню эта штука тоже вставлена, как подменю, - на случай, если рука к мышке приклеилась.
Но сейчас этот скрипт выбирает из mounts то, что смонтировано в /media, а не в /mnt, так что если все монитирования валить в одно место, надо будет как-то иначе различать постоянные и временные носители.
Я люблю GUI, но не люблю десктоп. А ещё я не люблю линуксные гуёвые файловые менеджеры - не из идейных соображений, а просто из-за их убогости и неудобности по сравнению даже с mc. Так что живу под голым openbox, а с файлами работаю в mc. В связи с этим возникет проблема автомонтирования сменных носителей. Я эту проблему решаю при помощи правил udev, сделанных по мотивам чего-то, что гуглится по тексту "media-by-label-auto-mount.rules".
Но тут возникает одна проблема: если файл правила присутствует в /etc/udev/rules.d/ до загрузки системы, то это правило работает наперегонки с системным монтированием через fstab, и результаты непредсказуемы. Я это выпрямляю при помощи безобразной затычки: в исходном состоянии на месте правила нет, оно копируется в /etc/udev/rules.d/ аж в автозапуске openbox, а перед завершением системы файл правила в /etc/udev/rules.d/ уничтожается.
А как бы это сделать более цивилизованно?
Если кому интересно - вот мой /etc/udev/rules.d/12-media-by-label-auto-mount.rules
KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end"
# Import FS infos
IMPORT{program}="/sbin/blkid -o udev -p %N"
# Get a label if present, otherwise specify one
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"
# Global mount options
ACTION=="add", ENV{mount_options}="uid=1000,umask=022,dmask=0"
# Filesystem-specific mount options
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", ENV{mount_options}="$env{mount_options},codepage=866,iocharset=utf8"
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", ENV{mount_options}="defaults,$env{mount_options}"
# Mount the device
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
# Clean up after removal
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
# Exit
LABEL="media_by_label_auto_mount_end"
Natrio
Я писал об этом в вики.
Момент загрузки drm-модуля (и смены шрифтов) случаен, и угадать его нельзя.
Там мелкая ошибка по поводу расположения файла правила: написано
/etc/udev/rules/96-fb-all-vcs-setup.rules
а на самом деле
/etc/udev/rules.d/96-fb-all-vcs-setup.rules
Я поначалу не обратил внимания и записал в rules.d, а потом присмотрелся и попробовал сделать, как написано. Не работает.
Natrio
Я писал об этом в вики.
Момент загрузки drm-модуля (и смены шрифтов) случаен, и угадать его нельзя.
Спасибо! Всё объяснено, с пол-пинка работают оба метода! Ещё бы добавить ссылку на эту статью вот сюда: Internationalization (Русская) . А то там этот вопрос как-то не так изложен...
Vonksilk
Посидел я, подумал и отказался от своей задумки.
Но если, все же, кто знает, как это реализовать мне будет интересно почитать.
Я немного ориентируюсь в потрохах openbox как раз в части меню. Так вот, на уровне конфигов, без правки исходников openbox, такое сделать нельзя. А вообще, идея иметь разные действия для разных кнопок кажется интересной.
white_ghost
убрал plymouth из initcpio.conf все стало нормально.
У меня всё точно то же, только plymouth нет, и нормально не стало :) . Более того, шрифт иногда при загрузке устанавливается, но как правило - нет. Установку шрифта хорошо видно сразу, поскольку в vconsole.conf я прописал шрифт немного крупнее, чем умолчательный. Точной закономерности я не установил; такое ощущение, что идут какие-то гонки. Например, шрифт почти всегда при загрузке устанавливается успешно, если чекается какой-то раздел (пришла пора по времени или по числу загрузок).
Ну а решил я для себя проблему при помощи вот такого костыля в rc.local:

for i in {1..7} ; do
setfont ter-v20b -C /dev/tty$i
done
akorop
Странная проблема. Телефон Fly Q420 … как диск - не виден. Обновлялся недавно (ядро 3.5.6-1-ARCH)
Куда копать?
Сегодня (17/12/12) обновился - проблема исчезла.