Здесь приведен работающий пример. Скачать репозиторий ArchLinux на свой носитель. Как создать локальный репозиторий любого линукса.

Вам потребуется работающий линукс любой  и активное соединение с интернет, установленный пакет rsync. редактор nano или mcedit. место на диске примерно 50 ГБ.

1 выставьте правильные дату и время в системе.
   в папке home делаем папку mirror.  далее работаем в папке mirror.
  Открываете https://www.archlinux.org/mirrorlist/?country=all&protocol=https&ip_version=4&use_mirror_status=on
  и первый сверху сервер вписываете по образцу в файле mirror-sync.sh переменную src
   hdd=/home/mirror  -  проверь

2 затем создаёте первый файл touch mirror-sync.sh и пишете.

Код:
#!/bin/bash
not="./mirror-exclude.txt"
src=mirror.sergal.org::archlinux
hdd=/home/mirror
rsync -alvzh --progress --delete --delete-after --inplace --partial --exclude-from=$not $src/core/os/x86_64/ $hdd/core/os/x86_64/
rsync -alvzh --progress --delete --delete-after --inplace --partial --exclude-from=$not $src/extra/os/x86_64/ $hdd/extra/os/x86_64/
rsync -alvzh --progress --delete --delete-after --inplace --partial --exclude-from=$not $src/community/os/x86_64/ $hdd/community/os/x86_64/
rsync -alvzh --progress --delete --delete-after --inplace --partial --exclude-from=$not $src/multilib/os/x86_64/ $hdd/multilib/os/x86_64/
rsync -alvzh --progress --delete --delete-after --inplace --partial --exclude-from=$not $src/pool/packages/ $hdd/pool/packages/
rsync -alvzh --progress --delete --delete-after --exclude-from=$not $src/pool/community/ $hdd/pool/community/
rsync -alvzh --progress $src/iso/latest $hdd/iso
rsync -alvzh --progress --delete --delete-after $src/iso/latest/ $hdd/iso/
logger -t Mirroring -s "Sync Compete"

делаете его исполняемым
сhmod 744 mirror-sync.sh

3. в тойже папке создаем mirror-exclude.txt и пишем в него исключения. 
лично я занес туда:  нестабильные ветки, файлы локализаций, большие по объему игры, нечто чем я пользоваться не намерен.
Список не претендует на полноту.

Код:
- /community-staging/os/x86_64/
- /communyty-testing/os/x86_64/
- /gnome-unstable/os/x86_64/
- /kde-unstable/os/x86_64/
- /multilib-staging/os/x86_64/
- /multilib-testing/os/x86_64/
- /progect/
- /staging/os/x86_64/
- /testing/os/x86_64/

- *-i18n-a??-*
- *-i18n-b?-*
- *-i18n-c?-*
- *-i18n-d?-*
- *-i18n-el-*
- *-i18n-es-*
- *-i18n-?t-*
- *-i18n-es-*
- *-i18n-f?-*
- *-i18n-g?-*
- *-i18n-h?-*
- *-i18n-h??-*
- *-i18n-f?-*
- *-i18n-i?-*
- *-i18n-k?-*
- *-i18n-k??-*
- *-i18n-l?-*
- *-i18n-l??-*
- *-i18n-m?-*
- *-i18n-o?-*
- *-i18n-p?-*
- *-i18n-rm-*
- *-i18n-ro-*
- *-i18n-s?-*
- *-i18n-s??-*
- *-i18n-t?-*
- *-i18n-v?-*
- *-i18n-x?-*
- *-i18n-z?-*
- libreoffice-fresh-*
- libreoffice-*-a??-
- libreoffice-*-b?-*
- libreoffice-*-br?-*
- libreoffice-*-c?-*
- libreoffice-*-d?-*
- libreoffice-*-el-*
- libreoffice-*-es-*
- libreoffice-*-?t-*
- libreoffice-*-f?-*
- libreoffice-*-g?-*
- libreoffice-*-h?-*
- libreoffice-*-h??-*
- libreoffice-*-f?-*
- libreoffice-*-i?-*
- libreoffice-*-k?-*
- libreoffice-*-k??-*
- libreoffice-*-l?-*
- libreoffice-*-m?-*
- libreoffice-*-n?-*
- libreoffice-*-nso-*
- libreoffice-*-o?-*
- libreoffice-*-p?-*
- libreoffice-*-rm-*
- libreoffice-*-ro-*
- libreoffice-*-s?-*
- libreoffice-*-s??-*
- libreoffice-*-t?-*
- libreoffice-*-v?-*
- libreoffice-*-u?-*
- libreoffice-*-x?-*
- libreoffice-*-z?-*
#games
- xonotic*
- 0ad*
- nexuiz*
- sauerbraten*
- warsow*

--------------
4. врубаем интернет. запускаем mirror-sync.sh
это надолго. 2-4 часа. врубили и ушли на работу, учёбу.
Все пакеты будут в папке pool
в остальных будут ссылки на пакеты в ней. оставь как есть. потом ты поймёшь что это удобно.
в папке pool будут папки packages, community.

вариант с мимимумом головной боли --- в конфиге пакмана пропиши пути для core, extra, community , multilib ----->>  Server= file:///...../core/......
вариант хлопотный - согласно вики спусти на папку packages утилиту pkg-add   и после завершения пропиши pacman.conf пути к базам ней
потом можно получившуюся базу подписать самодельным ключом.