WindowsからLinuxへ移行する際、OSだけでなく、写真やドキュメントなどのデータの転送も重要です。本記事では、SFTP・SSH/SCP・共有フォルダ・同期ソフト・仮想マシンという5つの転送方法を紹介し、用途に合ったファイル転送方法を解説します。

WindowsからLinuxへファイルを転送する方法一覧

まず、5つの転送方法とそれぞれの特徴や推奨される利用シーンを見ていきましょう。自分の状況に最も適した方法から始めることをお勧めします。

方法特徴適用シーン
SFTP(FileZilla)GUI操作でドラッグ&ドロップ転送でき、暗号化通信で安全コマンド操作が苦手な方・直感的に転送したい方
SSH/SCPコマンドターミナルからコマンド一つで高速転送、自動化にも対応Linuxに慣れている方・繰り返し転送や自動化をしたい方
共有フォルダネットワーク経由でWindowsとLinuxのフォルダを常時共有頻繁にファイルをやり取りする方・同じフォルダに常時アクセスしたい方
同期ソフト2台の端末間でファイルを自動的に同期複数デバイスで常に最新の状態を保ちたい方
仮想マシンの共有フォルダ1台のPC内でホストOSとゲストOS間のフォルダを共有1台のPCでWindowsとLinuxを両方使っている方

方法1.SFTP(FileZilla)でWindowsからLinuxへファイルを転送する

SFTP(SSH File Transfer Protocol)は、SSHによる暗号化通信を利用してファイルをやり取りする仕組みです。FileZillaなどのGUIクライアントを使用すれば、コマンドを入力することなく、WindowsからLinuxへ直接ファイルを転送することができます。

メリット:

  • GUI操作を採用しているため、コマンドを覚える必要がなく、初心者でも直感的に使い始めることができます。
  • ドラッグ&ドロップ操作で複数のファイルやフォルダのバッチ転送に対応しています。
  • SSHベースの暗号化通信を利用することで、盗聴や改ざんのリスクを最小限に抑えます。
  • 転送の進捗状況やエラーをGUI上でリアルタイムに確認できる

手順は以下のとおりです。

ステップ1:Linux側でOpenSSHサーバーを有効にする(前提条件)

SFTPを使用するには、Linux側でSSHサーバーを実行している必要があります。

  1. LinuxデバイスでCtrl+Alt+TまたはCtrl+Alt+F2キーの組み合わせでターミナルを開きます。
  2. 以下のコマンドを実行して、ローカルリポジトリを更新します。

sudo apt update

sudo apt-get update

次に、以下のコマンドを使用して OpenSSH サーバーをインストールします。

sudo apt install openssh-server

sudo apt install openssh-server

インストールが完了したら、以下のコマンドでOpenSSHサーバーが正常に動作しているかどうかを確認できます(systemctl コマンドは Ubuntu 18.04 以降の標準コマンドです)。

sudo systemctl status ssh

sudo service ssh status(古い環境の場合)

ステップ2:WindowsにFileZillaをインストールする

FileZilla公式サイトからWindows版のFileZilla Clientをダウンロードしてインストールします。

PuTTY公式サイトのパッケージファイルダウンロード一覧画面

ステップ3:FileZillaでLinuxサーバーへの接続情報を設定する

1. FileZilla を起動し、左上のメニューから「ファイル」 > 「サイトマネージャー」を選択します。

FileZillaで「ファイル」メニューからサイトマネージャーを開く様子

2. 「新しいサイト」をクリックし、プロトコルを「SFTP – SSH File Transfer Protocol」に設定します。

3. ホスト欄に Linux サーバーの IP アドレスを入力します(Linux側で hostname -I を実行すると確認できます)。

4. ユーザー名とパスワードを入力し、ログインの種類を「通常」に設定します。

5. 必要な情報を入力したら、「接続」をクリックします。

FileZillaのサイトマネージャーでFTP接続情報を入力する様子

ステップ4:ドラッグ&ドロップでファイルを転送する

接続が確立されると、画面の左側にローカルの Windows フォルダ、右側にリモートの Linux フォルダが表示されます。左側から右側へファイルをドラッグ&ドロップするだけで、Windows から Linux へのファイル転送が完了します。同様の手順で、逆方向(Linux から Windows へ)のファイルコピーも行うことができます。

方法2.SSH/SCPコマンドでWindowsからLinuxへファイルを転送する

Windows 10(バージョン 1809 以降)とWindows 11には、OpenSSH クライアントが標準搭載されています。これにより、PuTTY などの追加ソフトをインストールすることなく、コマンドラインから直接scpコマンドを使用して Linux へファイルを転送することができます。ここではLinux へのファイル転送に用いられる標準コマンドであるscpの使用方法について解説します。

メリット:

  • 追加のソフトは不要で、Windowsの標準機能だけで完結します。
  • コマンド一行で転送でき、バッチファイルやスクリプトに組み込んで自動化できます。
  • SSHの暗号化通信を利用するため、SSH Windows Linux間のファイル転送でも安全性が高いです。
  • フォルダ全体の一括転送にも対応しています。

詳細手順は以下のとおりです。

ステップ1:Linux側の準備

Linux 側での設定は、「方法 1:SFTP (FileZilla)」のステップ 1 と同じです。OpenSSH サーバーがまだインストールされていない場合は、関連する説明を参照し、sudo apt install openssh-serverを実行してインストールしてください。

ステップ2:WindowsでOpenSSHクライアントを確認する

  1. 設定」アプリを開き、「アプリ」 > 「オプション機能」を選択します。
  2. 機能を表示」から「OpenSSH クライアント」にチェックが入っているか確認してください(まだインストールされていない場合は、ここで追加してください)。

ステップ3:Windows Terminal(またはPowerShell)でscpコマンドを実行する

Linux 端末で以下のコマンドを実行することで、Linux デバイスの IP アドレスを確認できます。

hostname -I

Windows から Linux にファイルをコピーするには、次のように scp コマンドを実行します(remoteIPはLinux機器のIPアドレスに置き換えます)。

scp C:\Users\ユーザー名\Desktop\file.txt user@remoteIP:/home/user/

初回接続時、システムから続行するかどうかを確認するメッセージが表示されます。「yes」と入力し、Linux のパスワードを入力して転送を開始してください。フォルダ全体を転送するには、-r オプションを使用します。

scp -r C:\Users\ユーザー名\Documents\project user@remoteIP:/home/user/

Linux から Windows へファイルをコピーするには、コマンドの順序を逆にするだけで済みます。

scp user@remoteIP:/home/user/file.txt C:\Users\ユーザー名\Desktop\

注:
同じファイルを繰り返し転送する必要がある場合や、変更された部分だけを素早く同期させたい場合は、scpの代わりにrsyncコマンド(rsync -avz)を使用できます。WSL(Windows Subsystem for Linux)を使用すれば、Windows 上で直接 rsyncコマンドを実行することができます。

方法3.共有フォルダでWindowsとLinux間のファイルを共有する

片方または両方のシステムでネットワーク共有フォルダを作成すれば、Windowsのファイルをネットワーク越しにLinuxへ、またはその逆に転送できます。SMBはWindowsの標準的なファイル共有プロトコルであり、Linux側では「Samba」というソフトによって処理されます。

この方法では、WindowsとLinuxの間で同じファイルやフォルダを継続的に共有することも可能です。ただし、ネットワーク接続が不安定な環境では、転送に失敗する可能性があります。

メリット:

  1. 設定が完了すれば、都度ログインや接続操作をせずにファイルにアクセスできます。
  2. エクスプローラーやファイルマネージャーを使用して、ドラッグ&ドロップ操作でファイルを管理できます。
  3. 複数のファイルやフォルダに同時にアクセスする場合にも便利です。

詳細手順は以下のとおりです。

ステップ1:Windowsで共有フォルダを設定します。

1. タスクトレイのネットワーク接続アイコンを右クリックし、「ネットワークとインターネットの設定を開く」 > 「ネットワークと共有センター」を選択します(Windows 11 では、コントロールパネルで「ネットワークと共有センター」を検索しても同じ画面を開くことができます)。

「ネットワークと共有センター」を選択

2. 「共有の詳細設定の変更」を選択し、「ネットワーク探索を有効にする」と「ファイルとプリンターの共有を有効にする」オプションを有効にして、変更を保存します。

「共有の詳細設定の変更」を選択

3. 共有したいフォルダを右クリックし、「プロパティ」>「共有」タブ>「詳細な共有」を開く

4. 「このフォルダーを共有する」にチェックを入れ、「アクセス許可」でアクセス権限を設定する

5. 「適用」→「OK」の順にクリックして設定を保存する

「詳細な共有」をクリック

ステップ2:Linux側からWindowsの共有フォルダへアクセスする(Windows→Linux)

Linux側にSambaクライアントをインストールし、Windowsの共有フォルダをマウントします。

sudo apt install cifs-utils

sudo mkdir /mnt/windows

sudo mount -t cifs //WindowsのIPアドレス/共有フォルダ名 /mnt/windows -o username=ユーザー名

GUI環境では、エクスプローラーの「ネットワーク」セクションからWindows コンピュータ名を見つけてアクセスすることもできます。

ステップ3:Windowsから Linux共有フォルダへアクセスする(Linux→Windows)

逆方向の共有を実現するには、Linux 側に Samba サーバーをインストールし、フォルダを共有してください。

sudo apt install samba

sudo smbpasswd -a ユーザー名

# /etc/samba/smb.conf に共有設定を追記後

sudo systemctl restart smbd

設定が完了したら、Windows エクスプローラーのアドレスバーに「\\LinuxのIPアドレス\共有名」と入力することで、LinuxからWindowsへファイルをコピーできます。

方法4:同期ソフトでWindowsとLinux間のファイルを自動同期する

SyncthingやResilio Syncのような同期ソフトを使用すれば、フォルダ単位でファイルを自動的に同期できるほか、暗号化キーを利用して(OSが異なっていても)2台のデバイス間の接続を管理できます。複数のデバイス間でファイルの最新バージョンを常に同期させたい場合、この方法は非常に適しています。

メリット

  • 設定が完了すると、ファイルは自動的に同期されるため、手動での操作は不要です。
  • 多くのツールはP2Pアーキテクチャを採用しており、サーバーに依存することなく、デバイス間で直接データをやり取りできます。
  • 3台以上のデバイス間での同期に対応しています。

詳細手順は以下のとおりです。

ステップ 1:1台目のデバイスに同期ソフトをインストールする

Windows コンピュータに同期アプリ(Syncthing など)をインストールします。

ステップ2:同期するフォルダを選択し、デバイス ID を確認する

同期したいフォルダを追加すると、システムによって一意の暗号化されたデバイス ID(キー)が生成されます。

ステップ3:2台目のデバイス(Linux)でアプリケーションを設定する

Linux コンピュータに同じアプリケーションをインストールし、1台目のデバイスの ID を追加して、接続を承認します。

ステップ4:同期を開始する

接続が確立されると、指定したフォルダ内のコンテンツが Windows と Linux間で自動的に双方向同期されます。

方法5.仮想マシンの共有フォルダでWindowsとLinux間のファイルを転送する

Windows上で仮想マシン(VM)を使用してLinuxを実行している場合(その逆も同様)、仮想マシンを利用して2つのOS間でファイルを転送することができます。VirtualBoxなどの仮想マシンソフトには、データの同期を実現するための仮想共有ディレクトリを作成する機能が備わっています。この方法を試すには、あらかじめOracle VM VirtualBoxのようなVMアプリと、Guest Additions(ゲスト拡張機能)がインストールされている必要があります。

メリット

  • すべての機能が1台のPCに統合されており、ネットワーク設定やケーブル接続は不要です。
  • 共有フォルダの設定により自動マウントが行われるため、仮想マシンが起動するとすぐにファイルにアクセスできます。
  • ホストOSと仮想マシンのOSの両方から、同じフォルダを直接編集することができます。

詳細手順は以下のとおりです。

ステップ1:VirtualBoxを起動し、VMを起動する

パソコンでVirtualBoxアプリを起動し、対象の仮想マシンを選択してから、「起動」 > 「ヘッドレス起動」を選択します(通常の起動方法でも設定可能です)。

「ヘッドレス起動」を選択

ステップ2:共有フォルダの設定画面を開く

仮想マシンを右クリックし、「設定」 > 「共有フォルダ」 > 「マシンフォルダー」の順に選択します。

ステップ3:共有フォルダを追加する

  • 右上の「+」アイコンをクリックし、「共有フォルダーの追加」を選択します。
  • 共有したいディレクトリのパスを選択します。
  • 必要に応じてフォルダ名を設定し、「自動マウント」オプションにチェックを入れて、仮想マシンの起動時にその共有フォルダが自動的にマウントされるようにします。
  • OK」をクリックして変更を保存します。

設定を行う

ステップ4:仮想マシンを再起動して転送する

仮想マシンを再起動すると、ホストPCとゲストOS間でデータを転送するための共有フォルダが利用可能になります。これにより、Windows と Linux の間でファイルを相互にコピーできるようになります。

WindowsとLinux間でファイルを転送できない原因と対策

上記の方法を試してもファイルが転送できない場合は、以下の原因が考えられます。順に確認してください。

原因対処法
SSH/SMB ポートがファイアウォールによってブロックされているWindowsファイアウォールの詳細設定で、TCP22番(SSH)・445番(SMB)ポートの受信を許可する
IP アドレスまたはホスト名が正しくないLinuxは「hostname -I」、Windowsは「ipconfig」で正しいIPアドレスを再確認する
Linux 上の SSH サービスが実行されていない、またはインストールされていない「sudo systemctl status ssh」で状態を確認し、未導入なら「sudo apt install openssh-server」でインストールする
入力されたユーザー名またはパスワードが間違っているアカウント情報を再確認し、キーボード配列や大文字・小文字の違いに注意する
Windows と Linux が異なるネットワークに接続されている同じLAN、または同一のVPNに接続し直す
転送先フォルダの権限が不足している「chmod」や「chown」コマンドで転送先ディレクトリの書き込み権限を付与する
仮想マシンに Guest Additions がインストールされていないVirtualBoxならGuest Additionsをインストールし、共有フォルダ機能を有効化する

WindowsからLinuxへ移行する前にディスク管理を確認する

OSをWindowsからLinuxへ移行する際、ファイルをコピーするだけでなく、あらかじめディスクのパーティション構成を整理しておくと作業がスムーズになります。

例えば、以下のような場面では、パーティション管理ソフトが役立ちます。

  • Linux をインストールする前にパーティションの空き容量を確保したいとき
  • OS の移行に合わせてディスクのパーティション構成を調整したいとき
  • ファイル転送に利用できるディスク容量を管理したいとき

こうした状況では、パーティションの拡張や縮小、移動、削除まで簡単に行える「MiniTool Partition Wizard」をお勧めします。

MBRとGPT間のディスク変換や、OSをそのまま新しいディスクへ移行する機能も備えているため、WindowsからLinuxへ乗り換える前のディスク整理や、移行後の空き容量確保にも活用できます。

まとめ

本記事では、Windows と Linux 間でファイルを転送する 5 つの方法(SFTP、SSH/SCP、共有フォルダ、同期ソフト、仮想マシンの共有フォルダ)と、転送中に発生しうる問題とその解決策について解説します。Windows と Linux 間でファイルを転送する必要がある場合は、実際の環境やニーズに応じて最適な方法を選択してください。

MiniTool Partition Wizard のご利用中にご質問やご提案がございましたら、[email protected] までお気軽にお問い合わせください。

WindowsからLinuxへファイル転送に関するFAQ

WindowsからLinuxへファイルを転送する最も簡単な方法は?
GUIのSFTPクライアント(例:FileZilla)が簡単です。LinuxでOpenSSHサーバーを有効にし、FileZillaからSFTP接続するだけで転送できます。
PuTTYなしでSSH転送は可能ですか?
可能です。Windows 10(1809以降)・11にはOpenSSHクライアントが標準搭載されているため、scpコマンドで直接転送できます。
転送できないときの最初の確認ポイントは?
IPアドレスの誤記、Linux側のSSH/SMBサービスの停止、Windowsファイアウォールによるポート(SSH:22 / SMB:445)の遮断です。この3点が原因の大半を占めます。
Sambaは必須ですか?
常時ネットワーク共有するなら必要です。単発の転送ならSFTPやSCPで十分であり、その場合はSambaは不要です。
  • reddit