Montowanie partycji NTFS, z niepoprawnie wyłączonego Windowsa


Miałem kiedyś problem z zamontowaniem partycji z dysku, który kiedyś był podłączony do komputera z Windowsem. Niestety komputer ten został nieprawidłowo wyłączony lub zahibernowany i wymagał ponownego uruchomienia Windowsa i zamknięcia aby móc tę partycję zamontować pod linuksem. Niestety nie posiadałem komputera z Windowsem aby to zrobić, a przy próbie montowania pod linuksem otrzymywałem komunikaty typu:

The disk contains an unclean file system (0, 0). Metadata kept in Windows cache, refused to mount. Failed to mount '/dev/sda1′: Operacja niedozwolona The NTFS partition is in an unsafe state. Please resume and shutdown Windows fully (no hibernation or fast restarting), or mount the volume read-only with the 'ro’ mount option.

lub

Error mounting system-managed device /dev/sda1: Command-line `mount „/media/sda1″’ exited with non-zero exit status 14: [mntent]: warning: no final newline at the end of /etc/fstab
Windows is hibernated, refused to mount.
Failed to mount '/dev/sda1′: Operation not permitted
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the 'ro’ mount option.

rozwiązanie tego problemu jest proste:

sudo ntfsfix /dev/sdXY

sdXY należy zastąpić swoim oznaczeniem partycji.

Montowanie nośników USB dla całego systemu

udisks 2 - ubuntu 14.04Po instalacji Ubuntu 14.04 w wersji alfa zorientowałem się, że występuje w nim problem (przynajmniej dla mnie) montowania wszelakich nośników podłączanych do USB w katalogu przeznaczonym tylko dla jednego użytkownika.

Ponieważ całą kolekcję zdjęć trzymam na takim zewnętrznym nośniku (dysk 500Gb), to aby program do katalogowania zdjęć (digikam) działał jednakowo (wspólna konfiguracja i baza) dla wszystkich użytkowników systemu potrzeba jest, aby taki dysk zewnętrzny ze zdjęciami montowany był w tym samym miejscu dla każdego użytkownika. (w tej chwili montowany jest w /media/{$USER}/)

Powodem jest udisks2.

Na szczęście jest możliwość zmuszenia aby zewnętrzne peryferia montowane były niezależnie od użytkownika, zawsze w tym samym miejscu.

Należy w katalogu /etc/udev/rules.d/ znaleźć regułę dotyczącą udisks2, której plik to 99-udisks2.rules lub na początku z inną liczbą.
A w nim wprowadzić jedną linijkę kodu:

ENV{ID_FS_USAGE}==”filesystem”, ENV{UDISKS_FILESYSTEM_SHARED}=”1″

i ponownie uruchomić komuter lub wymusić stosowanie reguły poleceniem:

sudo udevadm control –reload

Od teraz dysk będzie montowany w kotalogu /media.


Tworzone pliki dostępne dla każdego, czyli umask pod kontrolą w Ubuntu 14.04

Nie wnikam czy to dopiero w 14.04 czy już w 13.10 nastąpiła zmiana.

Na moim domowym komputerze każdy domownik ma swoje konto co jest bardzo wygodne i polecam każdemu.

Problem pojawia się gdy np. żona zgrywa zdjęcia z aparatu na dysk a później ja na swoim koncie chcę coś z nimi zrobić.

file_permissions1Poprzednio aby tworzony przez użytkownika plik lub katalog był dostępny do odczytu i zapisu dla reszty uzytkowników tego komputera trzeba było w pliku .profile w katalogu domowym użytkownika ustawić flagę

umask 000 

W nowszych wydaniach ten parametr nie działa, a przynajmniej w pliku .profiles

Poszukując rozwiązania znalazłem je.

Nie wiem czy to bug pakietu upstart że nadpisuje ustawienia umask użytkownika czy nie, ale jest na to rozwiązanie:

należy skopiować plik /usr/share/upstart/sessions/gnome-session.conf
do katalogu $HOME/.config/upstart
i wstawić w nim umask 0002 przed linią exec gnome-session –session=$DESKTOP_SESSION


Ubuntu nie korzysta z pamięci wymiany – swap

Dzisiaj rano w firmie instalowałem ubuntu i windowsa na czystym dysku i ze względu na moją nieuwagę po zainstalowaniu obu systemów musiałem jeszcze partycję swap przenieść w inne miejsce.

I ku mojemu zdziwieniu (choć powinienem był się spodziewać) po starcie Ubuntu nie korzystało z tej partycji ( po prostu jej nie zamontowało)

Rozwiązanie tego problemu nie jest trudne. Cztery polecenia w konsoli, edycja dwóch plików i sprawa załatwiona.

Do rzeczy:

  • najpierw spojrzę gdzie Ubuntu szuka swap’a. Do tego wykonuję polecenie:
    cat /etc/fstab

    dzięki czemu wiemy jaką partycję chce zamontować system jako partycję wymiany

    # /etc/fstab: static file system information.
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    proc            /proc           proc    defaults        0       0
    # /dev/sda2
    UUID=41ac465d-dc23-49dc-9814-87dd1ae789e2 /               ext3    defaults,errors=remount-ro 0       1
    # /dev/sda3
    UUID=0cb007b8-1024-47ea-ac99-2760046b748c /home           ext3    defaults        0       2
    # /dev/sda1
    UUID=4638B0CA38B0B9EF /media/sda1     ntfs    defaults,umask=007,gid=46 0       1
    # /dev/sda4
    UUID=2f54d2b5-8947-41e9-b6b7-0f62d14d9b7f none            swap    sw              0       0
    /dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec 0       0
    /dev/fd0        /media/floppy0  auto    rw,user,noauto,exec 0       0

    teraz muszę się dowiedzieć która partycja jest partycją wymiany i wpisuję:

    sudo fdisk -l

    i otrzymuję:

    Disk /dev/sda: 320.0 GB, 320072933376 bytes
    255 heads, 63 sectors/track, 38913 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x8c8b8c8b

    Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1        2550    20482843+   7  HPFS/NTFS
    /dev/sda2            2551        7413    39062047+  83  Linux
    /dev/sda3            7414       29297   175783230   83  Linux
    /dev/sda4           29298       38913    77240520    f  W95 Ext’d (LBA)
    /dev/sda5           29298       29362      522081   82  Linux swap / Solaris
    /dev/sda6           29363       34461    40957686    7  HPFS/NTFS
    /dev/sda7           34462       38913    35760658+   7  HPFS/NTFS

    teraz muszę poznać UUID partycji sda5, wydaję polecenie:

    ls -l /dev/disk/by-uuid/

    wynik to:

    lrwxrwxrwx 1 root root 10 2008-06-11 10:11 0cb007b8-1024-47ea-ac99-2760046b748c -> ../../sda3
    lrwxrwxrwx 1 root root 10 2008-06-11 10:11 2f54d2b5-8947-41e9-b6b7-0f62d14d9b7f -> ../../sda5
    lrwxrwxrwx 1 root root 10 2008-06-11 10:11 41ac465d-dc23-49dc-9814-87dd1ae789e2 -> ../../sda2
    lrwxrwxrwx 1 root root 10 2008-06-11 10:11 4638B0CA38B0B9EF -> ../../sda1
    lrwxrwxrwx 1 root root 10 2008-06-11 10:11 7EBCB07FBCB0340D -> ../../sda7
    lrwxrwxrwx 1 root root 10 2008-06-11 10:11 FEDCA555DCA5094B -> ../../sda6

    edytuje plik fstab

    sudo gedit /etc/fstab

    i podmieniam linijkę

    UUID=4dds35ab-5632-8763-a65a-12ba45ff93b3 none            swap    sw              0       0

    na:

    UUID=2f54d2b5-8947-41e9-b6b7-0f62d14d9b7f none            swap    sw              0       0

    na koniec edytujemy jeszcze jeden plik:

    sudo gedit /etc/initramfs-tools/conf.d/resume

    i wpisujemy (podmieniamy)

    RESUME=UUID=2f54d2b5-8947-41e9-b6b7-0f62d14d9b7f

    teraz tylko

    sudo update-initramfs -u

    i restart komputera. Wszystko gra.