Lahti Vesijärvi

  Pääsivulle  |  TIETOTEKNIIKAN PÄÄSIVULLE

Kopiointi Windows <-> Mac

Macin ja Windows-koneiden sekakäyttäjä löytää levyiltään usein "ylimääräisiä" aputiedostoja ja joskus myös kopiointeihin liittyy ongelmia. Seuraavassa kerron tietoja ja kokemuksia tällaisesta.

Ensisijaisesti käytän kodin lähiverkkoa tiedostojen kopiointiin varsinkin jos kopioitavaa on yhtään enemmän. Valitettavasti kotiverkko joskus kieltäytyy yhteistyöstä, jos Windows-kone on toinen osapuoli. Seuraava vaihtoehto on OneDrive:n kautta, ja sitä seuraava muistitikulla (varsinkin jos on vain muutama tiedosto kopioitavana). OneDriveen ei jaksa uploadata satoja megoja, joten silloin järjestys on lähiverkko - muistitikku.

Niin kauan kun muistitikku oli formatoitu FAT32, oli muistitikun käytössä erilaisia ongelmia, joita jäljempänä on kuvattu. Kun siirryin exFAT-formatointiin, ongelmat pääosin hävisivät. Joka tapauksessa muistitikku kannattaa formatoida muutaman kuukauden välein.

Pilvipalvelut

OneDrive ja DropBox ovat toimivia paikkoja tiedostojen kopiointiin. Ilmeisesti ne hoitavat asianmukaisesti alternate data streamit (katso alempana), niin että tiedostot tulevat ehjinä perille. Molempia voi käyttää selaimessa tai sitten työasemaan asennettavan paikallisen sovelluksen avulla, joka hoitaa synkronoinnit pilveen. Ei kuitenkaan tule lähettää valmiiksi pakattuna (zip) tiedostojoukkoa, joiden nimissä on skandeja. Skandit vääristyvät.

Käytän normaalisti OneDriven työpöytäsovellusta Macissä ja Windowsissa, ja jos se ei toimi, niin menen siihen selaimen avulla. Jos kumpikaan ei toimi, niin DropBox on minulla varareitti muistitikun ohella.

OneDrive:n Windows-client takkuili syksyllä 2015 aika usein (Windows 8.1:ssa), mutta bugit on taidettu korjata, koska ongelmia ei ole ollut pitkään aikaan.

Kopiointi Macistä Windowsiin muistitikun kautta

Macissä tiedostoon liittyvä tieto on jaettu kahteen osaan: varsinainen data jonka käyttäjä luo (esimerkiksi tekstisisältö), ja ns. resource fork -osa jossa on dataan liittyvää lisätietoa (resource fork = alternate data streams ADS). Tämä jälkimmäinen voi olla esimerkiksi dokumenttiin liittyviä asetuksia, tieto www-sivusta mistä dokumentti on haettu, kuvan muokkausajankohta, sovellus jolla tiedosto on tehty jne.

Huom! Kun siirryin käyttämään muistitikussa exFAT-formatointia, on seuraavassa esitetyt ongelmat kadonneet. Jäljelle jäi vain se ongelma, että muistitikku vähitellen täyttyy vaikka se olisi kokonaan tyhjennetty (explorer ja finder ei näe mitään tiedostoja). Eli formatointi aika-ajoin on tarpeen.

Macin OSX:ssä resource fork -tiedot kirjoitetaan levyn HFS+ -osion rakenteisiin ja itse tiedosto näkyy yhtenä ja olennaisesti on vain yksi tiedosto. Mutta jos tiedosto kopioidaan levylle, jonka formatointityyppi on erilainen (esimerkiksi FAT32 tai exFAT), niin OSX:n Finder kirjoittaa sinne resource fork -osan erillisenä tiedostona. Joten kopioitu tiedosto löytyy kaksiosaisena, esimerkiksi:
   Kertomus.docx   ja  ._Kertomus.docx
   Laitekuva.png  ja  ._Laitekuva.png

Macissa Office Word ei tarvitse resource fork -tiedostoa ainakaan docx-tiedoston täydentäjänä. Kun docx-tiedoston kopioi FAT32-muistitikulle, niin sinne syntyy myös 4096 tavun pituinen resource fork -tiedosto, käytännössä tyhjänä. Heksaeditorilla voi vilkaista, että tiedostossa on alussa vakio-otsaketietoa, sitten paljon tyhjää, ja loppupäässä teksti "This resource fork intentionally left blank".

Kun Macissä muokkaa kuvatiedostoa Photoshopilla, niin metatietoa tallentuu paljon. FAT32-osioon kopioidessa syntyy paljon tietoa sisältävä resource fork -tiedosto. Yksinkertaisen laitekytkentäpiirrokseni png-tiedosto on kooltaan 62 kt ja sen resource fork -tiedosto 59 kt.

Kun sitten olen kopioinut muistitikulta tiedostot Windows-koneelle (jossa NTFS-osiointi), olen kopioinut vain varsinaiset datatiedostot ja sen jälkeen hävittänyt muistitikulta kaikki resource fork -tiedostot.

Mielenkiintoinen ilmiö esiintyy muistitikulla (fat32) joskus, katso kuva alla. Nyt tikulla on Macissa tallennettu LUEMINUT ENSIN.docx ja sen resource fork. Seuraavana päivänä kopioin tikulle uuden tiedostoversion Windows-koneelta, mutta sepä ilmaantui sinne omana rivinään:
Multiple file entry on Explorer

Tässä tapauksessa levyn hakemisto oli mennyt sekaisin, mikään sovellus ei saanut auki tiedostoja. Muistitikku piti formatoida. Vastaavaa tapahtui 1-2 kk välein. Jotain epästabiilia löytyy kopioitaessa ja poistaessa vuoroin Macistä ja Windowsista.

Toisenlainen ongelma tulee siitä, että Macin Finder (ja sovellukset) tallentaa tiedostonimen skandit eri tavalla kuin Windowsissa, eli ne tallennetaan kaksiskalarisena (kahden merkin pituinen tunniste) eikä siis yhtenä merkkinä (ascii-koodina). Oheisessa kuvaparissa näkyy muistitikulta kopioitu kansio Windows-koneessa vanhan kansion vieressä, yläkuvassa Windows Explorerissa ja alakuvassa komentokehotteessa. Alakuvasta näkyy että tiedostonimen merkki ä on riveillä erilainen:
kansiolistauksia

Kopiointi Windowsista Macciin muistitikun kautta

Tehdään niinkuin on luontevaa: kopioi Explorerin avulla tiedosto muistitikulle (osiolta NTFS -> exFAT) ja sitten Macissa Finderin avulla muistitikulta ulos (osiolta exFAT -> HFS+). Ja Macissä poista muistitikulta tiedostot, jotka olet sieltä kopioinut pois.

Jos muistitikulla on edelliseltä kierrokselta jäljellä Resource Fork -tiedostoja, niin Mac yhdistää uudet tiedostot samannimisen resurssitiedoston kanssa, mikä voi olla epätoivottavaa. Joten on paikallaan poistaa resurssitiedostot viimeistään kun kopioi muistitikulle uusia tiedostoja Windowsista.

Macissä tiedostojen poistamisen yhteydessä exFAT-muistitikulle syntyy roskakori joka ei näy Macin Finderissa:
   .Trashes  (tämä kansio on macOS-roskakori josta löytyy poistetut tiedostot)
   ._.Trashes    (tämä syntyy aina kun muistitikku kytketään Macciin)

Eli tiedostojen poistaminen Finderin avulla ei vapauta tilaa muistitikulta, koska tiedostot löytyvät edelleen roskakorista. Nämä saa pois tyhjentämällä roskakori Macin käyttöliittymässä.

Kopiointi zip-tiedostona

Jos Windowsissa pakkaat joukon tiedostoja zip-paketiksi, ja kopioit sen Macciin, niin voi olla edessä pieni yllätys: tiedostonimien skandit eivät näykään Macissä skandeina vaan erikoismerkkeinä. Skandinimisiä tiedostoja kopioitaessa ilmiötä ei esiinny, vaan ainoastaan zip-paketeissa. Viimeksi tein zip-paketin Windows 8.1:ssä, kopioin sen OneDriveen, josta edelleen Macciin, ja purin zipin Macissä. Skandit eivät säilyneet tiedostonimissä.

Muita muistitikun tiedostoja

Muistitikulla on muitakin macOS:n systeemitiedostoja, joita Macin käyttäjä ei näe Finderissa, mutta jotka näkyvät Windowsissa ja Macin terminaalissa. Näitä kopioituu myös Windows-koneeseen ellei ole tarkkana:
   .fseventsd (tämä kansio sisältää indeksointitietoja Macin hakusovellusta Spotlight varten)
   .Spotlight-V100  (myös tämä kansio sisältää indeksointitietoja Macin hakusovellusta varten)
   .TemporaryItems (tämä kansio on Finderin ja Macin sovellusten tilapäistietojen kansio)
   ._.TemporaryItems  (liittyy edelliseen, sen resource fork)
   .apdisk  (tämä xml-tiedosto sisältää muistitikku-volumen tunnisteen ja nimen)
   ._.apdisk  (edelliseen liittyvä resource fork)
   .DS_Store  (sisältää tietoja kansion asetuksista ja ikonien sijainneista jne)
 
Windows-koneessa edellämainitut tiedostot eivät haittaa mitään, ja muistitikulta niitä saa huoletta poistaa. Mac tekee uudet jos tarvitsee.

Windows-koneen (NTFS) systeemitiedostoja

Eivät pisteellä alkavat tiedostot ole mitään Macin erikoisuuksia, vaan niitä löytyy myös Windows-koneesta. Ne saa näkyviin tyhjentämällä kansion asetuksista ruksipaikan "Piilota suojatut käyttöjärjestelmätiedostot".

Tekee Windows muitakin systeemitiedostoja sinne tänne. Useimmille lienee tuttu tiedosto Thumb.db, joka syntyy kuvia sisältävään kansioon. Siihen on pakattu kuvista pikkukuvat kansion kuvanäkymiä varten.

Ongelmia tiedostojen kopioinnissa, esimerkki 1 (alternate data stream ADS)

Haluan kopioida tiedoston Windows-koneelta muistitikulle eli osiolta NTFS -> FAT32. Tämä ei onnistukaan, vaan tulee ilmoitus "The File has properties that cannot be copied to new location.  Are you sure you want to copy this file without its properties?"  tai sama suomeksi "Haluatko varmasti kopioida tämän tiedoston ilman sen ominaisuuksia? Tiedostolla xxxx.docx on ominaisuuksia, joita ei voi kopioida uuteen sijaintiin". Edellämainittu tapahtuu harvemmin, kun kopioidaan osiolle exFAT, viimeksi tuli minulla vastaan, kun kopioin OneDrive -> exFAT.

Tässä on kyse siitä, että tiedostosta on tallennettu NTFS-osiolle lisätietoja ns. erillisenä virtana (alternate data stream), eikä FAT32 tue sellaista. Windowsin Explorer ei tiedä mitä tekisi näillä lisätiedoilla ja kysyy käyttäjältä. Minulla näitä on tullut vastaan erilaisilla tiedostoilla silloin tällöin. Kun vastaan, että antaa mennä vaan, niin useimmissa tapauksissa Macille olen saanut muistitikulta täysin virheettömän tiedoston enkä ole huomannut mitä ehkä puuttuu. Mutta jonkun kerran Word-tiedoston fontit ovat muuttuneet ja nettilinkit ovat ilman linkkiä.

Kokeilin toista kopiointitapaa Windows -> Mac kahdelle tiedostolle, jotka olivat hukanneet näkyvää informaatiota. Kopiointitavat olivat: lähiverkon läpi (Macillä hain Windows-koneesta), ja OneDrive:n kautta. Molemmat tavat säilyttivät tiedostot täysin muuttumattomina eikä kysymystä ominaisuuksien kopioinnista ilmaantunut.

Windows 2000 ja XP käyttivät alternate streamiä tiedostojen joidenkin ominaisuuksien tallentamiseen, joten tämän ongelman tavallisimmin kohtaa vain tiedostoilla, joita on käsitelty kyseisellä NTFS-levyllä käyttäen XP:tä tai W2000:ta. Minun tapauksessa kaikki tiedostot eivät ole olleet alunperin tällaisia. Alternate stream ei näy Explorerissa erillisenä tiedostona, vaan sinne syötetty info on tallennettu NTFS-rakenteen faililuetteloon (MFT) datafailin tiedon yhteyteen tai jos infoa on paljon, siellä on viittaus muualle levyn alueelle. Voi myös olla, että jokin sovellus on tallennuksen yhteydessä kirjoittanut tiedostolle ADS-tiedon, jossa streamin pituus on 0. Katso teknisemmät selitykset täältä.

Sovelluksella StreamFinder voi koneeltaan etsiä tiedostoja, joilla on ADS. Sovellus löytyy täältä.

Toisenlainenkin stream-ongelma tuli vastaan: olin vastaanottanut Macciin sähköpostissa pdf-tiedoston, kopioin sen verkon yli Windows8.1 -työasemaan ja siellä yritin tallentaa sitä resurssinhallinnassa ehjälle ja lähes tyhjälle muistitikulle, ja toisellekin erimerkkiselle tikulle. Tallennus ei onnistunut, vaan tuli ilmoitus:
Kopiointi-ilmoitus Muisti on lopussa

Kopiointi onnistuu, jos teen tiedostoa varten kansion työasemalla ja kopioin muistitikulle kansion, ja silloin tulee ilmoitus että tiedostolla on ominaisuuksia joita ei voi kopioida. Lisähavaintoja:
- kopiointi XP-työasemalta muistitikulle onnistuu
- kopiointi Macistä muistitikulle onnistuu
- lähiverkon yli koneelta toiselle kopiointi onnistuu
- kopiointi OneDriveen onnistuu
- tiedosto avautuu normaalisti sekä Macissä että Windowsissa
- Adobe Readeristä tiedoston voi tallentaa muistitikulle
- sovellus ADS ilmoittaa, että tiedostolla on pieni ADS-osa tyyppiä $DATA
- Adobe Reader kertoo, että tiedosto on tehty 26.3.2014 sovelluksessa SECnvtToPDF V1.0  Toshiba e-studio 4555C eli se on skannattu isolla kopiokoneella

Ongelmia tiedostojen kopioinnissa, esimerkki 2 (tuntematon virhe)

Läppärin Windows 8:ssa (NTFS) muokkaamani docx-tiedoston (Office 2010) kopioin Explorerilla muistitikulle (FAT32) kahteen eri kansioon. Kotona kopioin Macin Finderilta toisen näistä Macciin.  Yritin avata tiedoston Macissä kaksoisklikkaamalla tiedostoa. Tuli ilmoitus, että tiedosto on korruptoitunut, mutta Macin Word osasi sitten korjata sen ja tiedosto avautui. Tiedostossa en havainnut että mitään olisi kadonnut. Myöhemmin totesin, että alkuperäinen läppärin tiedosto avautui läppärissä ilman ongelmia.

Tämän jälkeen kopioin muistitikun toisessa kansiossa olleen tiedoston Macciin eri paikkaan. Tämä tiedosto avautui ilman mitään ongelmia.

Tällaisia ongelmia on esiintynyt helmikuun 2014 alun jälkeen melko usein, aiempia tapauksia en muista. Tammikuun lopulla kokeilin Vista-koneessa LibreOfficea ja toin sillä tehtyjä docx-tiedostoja Windows 8:iin. Tämän jälkeen ongelmia on esiintynyt monissa Word-tiedostoissa, eikä vain LibreOfficella tallentamissani. LibreOffice on uhka! Ongelmia on esiintynyt, vaikka korjasin Office 2010:n asennuksen varan vuoksi.

Vai voiko ongelman lähteenä olla se, että muistitikulta on jäänyt siivoamatta Macin tekemät Resource Fork -tiedostot?

Ongelmia tiedostojen kopioinnissa, esimerkki 3 (kansioita katosi)

Minulle on tullut tavaksi tehdä varsinainen tiedostojen kopiointi tietokoneiden välillä OneDrive:n kautta, jos lähiverkon kautta ei saa yhteyttä tai koneet ovat eri osoitteissa. Muistitikku on varmistava väline ja suuria tiedostomääriä varten. Kerran kuukaudessa formatoin muistitikun. Mutta tämä ei aina riitä, vaan kerran kävi niin, että muistitikusta olivat kadonneet kaikki kansiot sisältöineen. Juuren tiedostot olivat tallella. En pystynyt selvittämään oliko nyt syyllinen Mac vai Windows.

Ongelmia tiedostojen kopioinnissa, esimerkki 4 (tuntematon virhe)

Macissä muokkamani docx-tiedoston kopioin Finderilla muistitikulle (HFS+ -> FAT32), ja edelleen Windows-koneelle Explorerilla (FAT32 -> NTFS). Tiedosto ei avautunut Office 2010:n Wordissa normaalisti, vaan sille piti tehdä korjaava avaaminen. Kaikki tieto oli tallessa. Tällaisia ongelmia alkoi esiintyä sen jälkeen kun olin tuonut Windows-koneeseen muutamia LibreOfficella tehtyjä docx-tiedostoja (ks. edellä esimerkki 2), mutta ei enää kun korjasin Office 2010:n asennuksen.


--------------------
(sivua muokattu 11.4.2021)